python数据分析之csv/txt数据的导入和保存
约定:
import numpy as np
import pandas as pd
- 1
- 2
- 3
一、CSV数据的导入和保存
csv数据一般格式为逗号分隔,可在excel中打开展示。
示例 data1.csv:
A,B,C,D
1,2,3,a
4,5,6,b
7,8,9,c
- 1
- 2
- 3
- 4
- 5
代码示例:
# 当列索引存在时
x = pd.read_csv("data1.csv")
print x
'''
A B C D
0 1 2 3 a
1 4 5 6 b
2 7 8 9 c
'''
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
示例data2.csv:
1,2,3,a
4,5,6,b
7,8,9,c
- 1
- 2
- 3
- 4
代码示例:
# 当列索引不存在时,默认从0开始索引
x = pd.read_csv('data2.csv', header=None)
print x
'''
0 1 2 3
0 1 2 3 a
1 4 5 6 b
2 7 8 9 c
'''
# 设置列索引
x = pd.read_csv('data2.csv',names=['A','B','C','D'])
print x
'''
A B C D
0 1 2 3 a
1 4 5 6 b
2 7 8 9 c
'''
# 将一(多)列的元素作为行(多层次)索引
x = pd.read_csv('data2.csv',names=['A','B','C','D'],index_col='D')
print x
'''
A B C
D
a 1 2 3
b 4 5 6
c 7 8 9
'''
x = pd.read_csv('data2.csv',names=['A','B','C','D'],index_col=['D','C'])
print x
'''
A B
D C
a 3 1 2
b 6 4 5
c 9 7 8
'''
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
示例data3.csv:
A,B,C,D
1,2,3,
NULL,5,6,b
7,nan,Nan,c
- 1
- 2
- 3
- 4
- 5
代码示例:
# 一般NULL nan 空格 等自动转换为NaN
x = pd.read_csv('data3.csv', na_values=[])
print x
'''
A B C D
0 1.0 2.0 3 NaN
1 NaN 5.0 6 b
2 7.0 NaN Nan c
'''
# 将某个元素值设置为NaN
x = pd.read_csv('data3.csv', na_values=['Nan'])
print x
'''
A B C D
0 1.0 2.0 3.0 NaN
1 NaN 5.0 6.0 b
2 7.0 NaN NaN c
'''
# 在对应列上设置元素为NaN
setNaN = {'C':['Nan'],'D':['b','c']}
x = pd.read_csv("data3.csv",na_values=setNaN)
print x
'''
A B C D
0 1.0 2.0 3.0 NaN
1 NaN 5.0 6.0 NaN
2 7.0 NaN NaN NaN
'''
# 保存数据到csv文件
x.to_csv('data3out.csv')
'''
data3out:
,A,B,C,D
0,1.0,2.0,3.0,
1,,5.0,6.0,
2,7.0,,,
'''
# 保存数据到csv文件,设置NaN的表示,去掉行索引,去掉列索引(header)
x.to_csv('data3out.csv',index=False,na_rep='NaN',header=False)
'''
data3out:
1.0,2.0,3.0,NaN
NaN,5.0,6.0,NaN
7.0,NaN,NaN,NaN
'''
x = pd.read_csv("data3out.csv",names=['W','X','Y','Z'])
print x
'''
W X Y Z
0 1.0 2.0 3.0 NaN
1 NaN 5.0 6.0 NaN
2 7.0 NaN NaN NaN
'''
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
二、txt数据的导入
txt文件中的数据通常以多个空格或者逗号等分割开。
示例data4.txt:
A B C
a 1 2 3
b 4 5 6
- 1
- 2
- 3
- 4
代码示例:
# 读取数据
x = pd.read_table('data4.txt', sep='\s+') # sep:分隔的正则表达式
print x
'''
A B C
a 1 2 3
b 4 5 6
'''
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
示例data5.txt:
1.176813 3.167020
-0.566606 5.749003
0.931635 1.589505
-0.036453 2.690988
- 1
- 2
- 3
- 4
- 5
代码示例:
# 使用numpy读取txt
x = np.loadtxt('data5.txt', delimiter='\t') # 分隔符
print x
'''
[[ 1.176813 3.16702 ]
[-0.566606 5.749003]
[ 0.931635 1.589505]
[-0.036453 2.690988]]
'''
python数据分析之csv/txt数据的导入和保存的更多相关文章
- Python数据分析之双色球高频数据统计
Step1:基础数据准备(通过爬虫获取到),以下是从第一期03年双色球开奖号到今天的所有数据整理,截止目前一共2549期,balls.txt 文件内容如下 : 备注:想要现成数据的可以给我发邮件哟~ ...
- CSV格式数据如何导入SqlServer?
一.使用微软数据库IDE管理软件:Microsoft SQL Server Management Studio 1.标准的CSV文件格式如下: 2.建数据表 3.在需要导入的数据库右键点击“任务”,选 ...
- CSV格式数据如何导入MySQL?
经常有客户咨询如何将CSV文件导入到MySQL数据库中,特写此文介绍一种方便.快捷的方法. 我们要使用的辅助工具是著名的MySQL管理软件:Navicat for MySQL 1)我准备了一个字符编码 ...
- Python数据分析:大众点评数据进行选址
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:砂糖侠 如果你处于想学Python或者正在学习Python,Pyth ...
- Python 数据分析 - 索引和选择数据
loc,iloc,ix三者间的区别和联系 loc .loc is primarily label based, but may also be used with a boolean array. 就 ...
- Python读取Excel中的数据并导入到MySQL
""" 功能:将Excel数据导入到MySQL数据库 """ import xlrd import MySQLdb # Open the w ...
- python数据分析第二版:数据加载,存储和格式
一:读取数据的函数 1.读取csv文件 import numpy as np import pandas as pd data = pd.read_csv("C:\\Users\\Admin ...
- Python数据分析之全球人口数据
这篇文章用pandas对全球的人口数据做个简单分析.我收集全球各国1960-2019年人口数据,包含男女和不同年龄段,共6个文件. pop_total.csv: 各国每年总人口 pop_female. ...
- Python 数据分析—第七章 数据归整:清理、转换、合并、重塑
一.数据库风格的Dataframe合并 import pandas as pd import numpy as np df1 = pd.DataFrame({'1key':['b','b','a',' ...
随机推荐
- CodeForces 714A
Description Today an outstanding event is going to happen in the forest — hedgehog Filya will come t ...
- Linux查看用户密码修改时间
在/etc/shadow文件里面,第三个字段标识表示密码修改日期:这个是表明上一次修改密码的日期与1970-1-1相距的天数.如果账户自创建后,没有修改过密码,就可以使用这个字段来查找账号创建日期. ...
- 微软Holographic将更名为Windows Mixed Reality
微软Holographic将更名为Windows Mixed Reality ----世界变化好快. 还没来得及细细品味,它就已经更名了. 程序员的焦虑,处在一个信息大爆炸的年代,大数据,云计算,机 ...
- json在线工具
1.json在线格式化工具 http://www.choujone.com/json/ 2.json在线比较工具 http://tlrobinson.net/projects/javascript-f ...
- java基础25 线程的常用方法、线程安全问题、死锁现象
一.线程的常用方法 1.Thread(String name):初始化线程的名字2. setName(String name):设置线程的名字3. getName():返回线程的名字4. sleep( ...
- Jdk 和 Tomcat的 安装。
1.再分发服务器上下载JDK,然后利用xftp上传到聚石塔等 2. 解压: tar -zxvf jdk-8u121-linux-x64.tar.gz 3.配置环境变量: export JAVA_HOM ...
- springMVC源码分析--HttpMessageConverter写write操作(三)
上一篇博客springMVC源码分析--HttpMessageConverter参数read操作中我们已经简单介绍了参数值转换的read操作,接下来我们介绍一下返回值的处理操作.同样返回值的操作操作也 ...
- MySQL学习笔记:repeat、loop循环
一.repeat循环 # ---- repeat ---- DELIMITER $$ CREATE PROCEDURE test_repeat() BEGIN ; REPEAT ; UNTIL a E ...
- Effective STL 学习笔记14: Use reserve to avoid unnecessary reallocations.
vector 和 string 容器在动态插入一个新的对象时,如果容器内空间不够,该容器会: 重新分配空间 通常的做法是分配当前 Capacity 大小两倍的空间. 将旧空间中的所有元素拷贝进新的空间 ...
- KnockoutJs学习笔记(一)
由于工作需要,接触到了Knockout,但是之前对于前台开发真的是不太了解,只能是摸着石头过河,边学边实践了. Knockout的官方网站是:http://knockoutjs.com/.我也是跟着官 ...