查看原文
其他

软件应用丨Pandas入门系列(二):Pandas io操作

向前走别回头等 数据Seminar 2021-06-03

版权声明:本文为CSDN博主「向前走别回头」与墨岚❤️的原创文章合集,遵循 CC 4.0 BY-SA 版权协议,特此附上原文出处链接及本声明。


原文链接:

https://blog.csdn.net/weixin_39778570/article/details/81078684

https://blog.csdn.net/ly_ysys629/article/details/55107237

昨天我们为大家介绍了Series和DataFrame,点此回顾软件应用丨Pandas入门系列(一):深入理解Series和DataFrame



Pandas io操作


>>> import numpy as np>>> import pandas as pd>>> from pandas import Series, DataFrame>>> import webbrowser#打开官网,里面有io操作的详细介绍>>> link = 'http://pandas.pydata.org/pandas-docs/version/0.20/io.html'>>> webbrowser.open(link)# 从粘粘板读取数据>>> df1 = pd.read_clipboard()# 把数据放入到粘粘板中,数据可以直接粘粘到excel文件中>>> df1.to_clipboard()# 读写csv文件,可以取消index>>> df1.to_csv('df1.csv')>>> df1.to_csv('df1.csv', index = False)>>> df2 = pd.read_csv('df1.csv')# 转化为json格式>>> df1.to_json()# 读取json>>> pd.read_json(df1.to_json())# 转化为html格式>>> df1.to_html('df1.html')# 装换为excel格式>>> df1.to_excel('df1.xlsx')

左右滑动查看更多




更多操作


读取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读取的数据类型为Dataframeobj.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
左右滑动查看更多

官网:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

英文原文:

http://pandas.pydata.org/pandas-docs/stable/io.html#io-read-csv-table



·END·



点击搜索你感兴趣的内容吧

软件应用丨超强干货!Numpy简单使用(入门)


软件应用丨Python数据分析,学习路径拆解及资源推荐(附详细思维导图)


机器学习丨经济学研究中的机器学习:回顾与展望





数据Seminar




这里是大数据、分析技术与学术研究的三叉路口





出处:CSDN作者:向前走别回头 墨岚❤️推荐:青酱排版编辑:青酱 





    欢迎扫描👇二维码添加关注    

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存