read_csv⽂件读写参数详解————python pandas IO tools 之csv⽂件读写
英⽂原⽂:
读取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⽂件
1import pandas as pd
ad_csv('f:/ceshi.csv')
print obj
print type(obj)
print obj.dtypes
Unnamed: 0  c1  c2  c3
0          a  0  5  10
1          b  1  6  11
2          c  2  7  12
3          d  3  8  13
4          e  4  9  14
python怎么读csv数据<class 'frame.DataFrame'> Unnamed: 0    object
c1            int64
c2            int64
c3            int64
dtype: object
ceshi.csv为有列索引没有⾏索引的数据,read_csv会⾃动加上⾏索引,即使原数据集有⾏索引。
read_csv读取的数据类型为Dataframe,obj.dtypes可以查看每列的数据类型
obj_ad_csv('f:/ceshi.csv',header=None,names=range(2,5))
print obj_2
1
2  3  4
0  c1  c2  c3
1  0  5  10
2  1  6  11
3  2  7  12
4  3  8  13
5  4  9  14
1
header=None时,即指明原始⽂件数据没有列索引,这样read_csv为⾃动加上列索引,除⾮你给定列索引的名字。
obj_ad_csv('f:/ceshi.csv',header=0,names=range(2,5))
print obj_2
1
2  3  4
0  0  5  10
1  1  6  11
2  2  7  12
3  3  8  13
4  4  9  14
header=0,表⽰⽂件第0⾏(即第⼀⾏,python,索引从0开始)为列索引,这样加names会替换原来的列索引。
obj_ad_csv('f:/ceshi.csv',index_col=0)
print obj_2
c1  c2  c3
a  0  5  10
b  1  6  11
c  2  7  12
d  3  8  13
e  4  9  14
obj_ad_csv('f:/ceshi.csv',index_col=[0,2])
print obj_2
c1  c3
c2
a 5    0  10
b 6    1  11
c 7    2  12
d 8    3  13
e 9    4  14
index_col为指定数据中哪⼀列作为Dataframe的⾏索引,也可以可指定多列,形成层次索引,默认为None,即不指定⾏索引,这样系统会⾃动加上⾏索引(0-)
obj_ad_csv('f:/ceshi.csv',index_col=0,usecols=[0,1,2,3])
print obj_2
c1  c2  c3
a  0  5  10
b  1  6  11
c  2  7  12
d  3  8  13
e  4  9  14
1
obj_ad_csv('f:/ceshi.csv',index_col=0,usecols=[1,2,3])
print obj_2
1
c2  c3
c1
0    5  10
1    6  11
2    7  12
3    8  13
4    9  14
1
usecols:可以指定原数据集中,所使⽤的列。在本例中,共有4列,当usecols=[0,1,2,3]时,即选中所有列,之后令第⼀列为⾏索引,当usecols=[1,2,3]时,即从第⼆列开始,之后令原始数据集的第⼆列为⾏索引。
obj_ad_csv('f:/ceshi.csv',index_col=0,nrows=3)
print obj_2
1
c1  c2  c3
a  0  5  10
b  1  6  11
c  2  7  12
nrows:可以给出从原始数据集中的所读取的⾏数,⽬前只能从第⼀⾏开始到nrows⾏。datetime handing 数据中⽇期处理
obj_ad_csv('f:/ceshi_date.csv',index_col=0,)
print obj_3
print type(obj_3.index)
1
2
3
A  B  C
date
20090101          a  2  3
20090102          b  3  4
20090103          c  4  5
<class 'pandas.indexes.numeric.Int64Index'>
11
obj_ad_csv('f:/ceshi_date.csv',index_col=0,parse_dates=True)
print obj_3
print type(obj_3.index)
1
A  B  C
date
2009-01-01        a  2  3
2009-01-02        b  3  4
2009-01-03        c  4  5
<class 'pandas.tseries.index.DatetimeIndex'>
1
parse_dates=True:可令字符串解析成时间格式。
data='date,value,cat\n1/6/2000,5,a\n2/6/2000,10,b\n3/6/2000,15,c'
print data
1
date,value,cat
1/6/2000,5,a
2/6/2000,10,b
3/6/2000,15,c
1
from StringIO import StringIO
ad_csv(StringIO(data),parse_dates=[0],index_col=0)
value cat
date
2000-01-06      5  a
2000-02-06    10  b
2000-03-06    15  c
1
ad_csv(StringIO(data),parse_dates=[0],index_col=0,dayfirst=True)
1
value cat
date
2000-06-01      5  a
2000-06-02    10  b
2000-06-03    15  c
1
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
1
id|level|category
patient1|123,000|x
patient2|23,000|y
patient3|1,234,018|z
1
ad_csv(StringIO(tem),sep='|')
1
id      level category
0  patient1    123,000        x
1  patient
2    23,000        y
2  patient
3  1,234,018        z
1
ad_csv(StringIO(tem),sep='|',thousands=',')
1

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。