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',' ...
随机推荐
- 微服务深入浅出(9)-- Nginx
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,处理请求是异步非阻塞的,多个连接(万级别)可以对应一个进程.而Apache是同步多进程模型,一个连接对 ...
- Anaconda+django写出第一个web app(四)
前面对Models有了一些了解,今天开始进一步了解Views,了解Views如何和Models交互以及了解模板(templates). 打开main文件夹下的views.py,重新编写homepage ...
- Go语言的接口interface、struct和组合、继承
Go语言的interface概念相对于C++中的基类,通过interface来实现多态功能. 在C++中,当需要实现多态功能时,步骤是首先定义一个基类,该基类使用虚函数或者纯虚函数抽象了所有子类会用到 ...
- 读sru代码
1. def read_corpus(path, eos="</s>"): data = [ ] with open(path) as fin: for line in ...
- Linux多线程的使用一:互斥锁
多线程经常会在Linux的开发中用到,我想把平时的使用和思考记录下来,一是给自己做个备忘,二是分享给可能会用到的人. POSIX标准下互斥锁是pthread_mutex_t,与之相关的函数有: 1 i ...
- 大数据系列之分布式大数据查询引擎Presto
关于presto部署及详细介绍请参考官方链接 http://prestodb-china.com PRESTO是什么? Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持G ...
- 006_Mac下sublime text 的“package control”安装,sublimepackage
Mac下sublime text 的“package control”安装,sublimepackage 小伙伴们好,我根据昨晚的经历写一个小总结:关于“Mac下sublime text 的“pack ...
- (二) Log4j 配置详解
第一节: rootLogger 根配置 Log4j 根配置语法 log4j.rootLogger = [ level ] , appenderName, appenderName, … 指代 把指定级 ...
- java jps命令使用解析
在linux环境下显示一个进程的信息大家可能一直都在使用ps命令,比如用以下命令来显示当前系统执行的java进程: ps -ef | grep java 针对java的进程,jdk1.5以后提供了一个 ...
- Python decorator装饰器
问题: 定义了一个新函数 想在运行时动态增加功能 又不想改动函数本身的代码 通过高阶段函数返回一个新函数 def f1(x): return x*2 def new_fn(f): #装饰器函数 def ...