python pandas IO tools 之read_csv文件读写参数详解
来源:互联网 发布:网络多媒体箱 编辑:程序博客网 时间:2024/06/06 03:55
python pandas IO tools 之csv文件读写
英文原文:pandas IO tools
读取csv文件:pd.read_csv(),写入csv文件:pd.to_csv()
pandas还可以读取一下文件:
read_csv,
read_excel,
read_hdf,
read_sql,
read_json,
read_msgpack (experimental),
read_html,
read_gbq (experimental),
read_stata,
read_sas,
read_clipboard,
read_pickle;
相应的写入:
to_csv,
to_excel,
to_hdf,
to_sql,
to_json,
to_msgpack (experimental),
to_html,
to_gbq (experimental),
to_stata,
to_clipboard,
to_pickle.
常用参数的读取csv文件
import pandas as pdobj=pd.read_csv('f:/ceshi.csv')print objprint type(obj)print obj.dtypes
Unnamed: 0 c1 c2 c30 a 0 5 101 b 1 6 112 c 2 7 123 d 3 8 134 e 4 9 14<class 'pandas.core.frame.DataFrame'>Unnamed: 0 objectc1 int64c2 int64c3 int64dtype: object
ceshi.csv为有列索引没有行索引的数据,read_csv会自动加上行索引,即使原数据集有行索引。
read_csv读取的数据类型为Dataframe,obj.dtypes可以查看每列的数据类型
obj_2=pd.read_csv('f:/ceshi.csv',header=None,names=range(2,5))print obj_2
2 3 40 c1 c2 c31 0 5 102 1 6 113 2 7 124 3 8 135 4 9 14
header=None时,即指明原始文件数据没有列索引,这样read_csv为自动加上列索引,除非你给定列索引的名字。
obj_2=pd.read_csv('f:/ceshi.csv',header=0,names=range(2,5))print obj_2
2 3 40 0 5 101 1 6 112 2 7 123 3 8 134 4 9 14
header=0,表示文件第0行(即第一行,python,索引从0开始)为列索引,这样加names会替换原来的列索引。
obj_2=pd.read_csv('f:/ceshi.csv',index_col=0)print obj_2
c1 c2 c3a 0 5 10b 1 6 11c 2 7 12d 3 8 13e 4 9 14
obj_2=pd.read_csv('f:/ceshi.csv',index_col=[0,2])print obj_2
c1 c3 c2 a 5 0 10b 6 1 11c 7 2 12d 8 3 13e 9 4 14
index_col为指定数据中那一列作为Dataframe的行索引,也可以可指定多列,形成层次索引,默认为None,即不指定行索引,这样系统会自动加上行索引(0-)
obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,usecols=[0,1,2,3])print obj_2
c1 c2 c3a 0 5 10b 1 6 11c 2 7 12d 3 8 13e 4 9 14
obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,usecols=[1,2,3])print obj_2
c2 c3c1 0 5 101 6 112 7 123 8 134 9 14
usecols:可以指定原数据集中,所使用的列。在本例中,共有4列,当usecols=[0,1,2,3]时,即选中所有列,之后令第一列为行索引,当usecols=[1,2,3]时,即从第二列开始,之后令原始数据集的第二列为行索引。
obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,nrows=3)print obj_2
c1 c2 c3a 0 5 10b 1 6 11c 2 7 12
nrows:可以给出从原始数据集中的所读取的行数,目前只能从第一行开始到nrows行。
datetime handing 数据中日期处理
obj_3=pd.read_csv('f:/ceshi_date.csv',index_col=0,)print obj_3print type(obj_3.index)
A B Cdate 20090101 a 2 320090102 b 3 420090103 c 4 5<class 'pandas.indexes.numeric.Int64Index'>
obj_3=pd.read_csv('f:/ceshi_date.csv',index_col=0,parse_dates=True)print obj_3print type(obj_3.index)
A B Cdate 2009-01-01 a 2 32009-01-02 b 3 42009-01-03 c 4 5<class 'pandas.tseries.index.DatetimeIndex'>
parse_dates=True:可令字符串解析成时间格式。
data='date,value,cat\n1/6/2000,5,a\n2/6/2000,10,b\n3/6/2000,15,c'print data
date,value,cat1/6/2000,5,a2/6/2000,10,b3/6/2000,15,c
from StringIO import StringIOprint pd.read_csv(StringIO(data),parse_dates=[0],index_col=0)
value catdate 2000-01-06 5 a2000-02-06 10 b2000-03-06 15 c
print pd.read_csv(StringIO(data),parse_dates=[0],index_col=0,dayfirst=True)
value catdate 2000-06-01 5 a2000-06-02 10 b2000-06-03 15 c
US常用时间格式:MM/DD/YYYY,dayfirst=True:可将其改为DD/MM/YYYY
分隔符和阈值
tem='id|level|category\npatient1|123,000|x\npatient2|23,000|y\npatient3|1,234,018|z'print tem
id|level|categorypatient1|123,000|xpatient2|23,000|ypatient3|1,234,018|z
print pd.read_csv(StringIO(tem),sep='|')
id level category0 patient1 123,000 x1 patient2 23,000 y2 patient3 1,234,018 z
print pd.read_csv(StringIO(tem),sep='|',thousands=',')
id level category0 patient1 123000 x1 patient2 23000 y2 patient3 1234018 z
- python pandas IO tools 之read_csv文件读写参数详解
- python pandas IO tools 之read_csv文件读写参数详解
- python pandas.read_csv参数详解
- python pandas.read_csv参数详解
- pandas.read_csv参数详解
- pandas.read_csv参数详解
- pandas.read_csv参数详解
- pandas.read_csv参数详解
- pandas.read_csv参数详解
- pandas.read_csv参数详解
- pandas read_csv()参数详解
- pandas.read_csv参数详解
- pandas.read_csv to_csv参数详解
- python pandas.read_csv参数整理,读取txt,csv文件
- Python中pandas.read_csv的参数整理
- 【python学习笔记】pandas.read_csv参数整理
- pandas.read_csv参数整理
- pandas.read_csv参数整理
- Java基础知识(五)
- 设计模式之 女朋友与情人节
- 1050. String Subtraction (20)
- AKKA学习笔记
- Go语言官方文档
- python pandas IO tools 之read_csv文件读写参数详解
- leecode 解题总结:101. Symmetric Tree
- XGBoost参数调优
- Eclipse直接运行算法第4版例子(重定向和读取指定路径文件)
- 运输计划
- day21 IO包中的其它类
- Spring之AOP实现
- 【leetcode 001】Two Sum || Add Two Numbers
- 在myBaits中打印sql语句