python pandas IO tools 之csv文件读写

转载 2018年04月17日 15:15:35

源地址:https://blog.csdn.net/ly_ysys629/article/details/55107237

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 pd
obj=pd.read_csv('f:/ceshi.csv')
print obj
print type(obj)
print obj.dtypes
  • 1
  • 2
  • 3
  • 4
  • 5
  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
<class 'pandas.core.frame.DataFrame'>
Unnamed: 0    object
c1             int64
c2             int64
c3             int64
dtype: object
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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
  • 1
  • 2
    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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

header=None时,即指明原始文件数据没有列索引,这样read_csv为自动加上列索引,除非你给定列索引的名字。

obj_2=pd.read_csv('f:/ceshi.csv',header=0,names=range(2,5))
print obj_2
  • 1
  • 2
   2  3   4
0  0  5  10
1  1  6  11
2  2  7  12
3  3  8  13
4  4  9  14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

header=0,表示文件第0行(即第一行,python,索引从0开始)为列索引,这样加names会替换原来的列索引。

obj_2=pd.read_csv('f:/ceshi.csv',index_col=0)
print obj_2
  • 1
  • 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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
obj_2=pd.read_csv('f:/ceshi.csv',index_col=[0,2])
print obj_2
  • 1
  • 2
      c1  c3
  c2        
a 5    0  10
b 6    1  11
c 7    2  12
d 8    3  13
e 9    4  14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

index_col为指定数据中那一列作为Dataframe的行索引,也可以可指定多列,形成层次索引,默认为None,即不指定行索引,这样系统会自动加上行索引(0-)

obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,usecols=[0,1,2,3])
print obj_2
  • 1
  • 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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,usecols=[1,2,3])
print obj_2
  • 1
  • 2
    c2  c3
c1        
0    5  10
1    6  11
2    7  12
3    8  13
4    9  14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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
  • 1
  • 2
   c1  c2  c3
a   0   5  10
b   1   6  11
c   2   7  12
  • 1
  • 2
  • 3
  • 4
  • 5

nrows:可以给出从原始数据集中的所读取的行数,目前只能从第一行开始到nrows行。

datetime handing 数据中日期处理

obj_3=pd.read_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'>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
obj_3=pd.read_csv('f:/ceshi_date.csv',index_col=0,parse_dates=True)
print obj_3
print type(obj_3.index)
  • 1
  • 2
  • 3
                   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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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
  • 2
date,value,cat
1/6/2000,5,a
2/6/2000,10,b
3/6/2000,15,c
  • 1
  • 2
  • 3
  • 4
  • 5
from StringIO import StringIO
print pd.read_csv(StringIO(data),parse_dates=[0],index_col=0)
  • 1
  • 2
            value cat
date                 
2000-01-06      5   a
2000-02-06     10   b
2000-03-06     15   c
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
print pd.read_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
  • 2
  • 3
  • 4
  • 5
  • 6

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
  • 2
id|level|category
patient1|123,000|x
patient2|23,000|y
patient3|1,234,018|z
  • 1
  • 2
  • 3
  • 4
  • 5
print pd.read_csv(StringIO(tem),sep='|')
  • 1
         id      level category
0  patient1    123,000        x
1  patient2     23,000        y
2  patient3  1,234,018        z
  • 1
  • 2
  • 3
  • 4
  • 5
print pd.read_csv(StringIO(tem),sep='|',thousands=',')
  • 1
         id    level category
0  patient1   123000        x
1  patient2    23000        y
2  patient3  1234018        z
  • 1
  • 2
  • 3
  • 4
  • 5

python | 读文件 | csv 、json、pickle等

本次总结来源于pandas的官网,由个人学习总结出来。 来说下pandas用于读取的文件格式有那些吧,这些读取方法获取文件的速度超级快,很实用。 1、pd.read_csv() 、df.to_cs...
  • xxzhangx
  • xxzhangx
  • 2017-08-02 20:46:45
  • 787

【pandas】pandas每次使用append追加行时都生成一个Unnamed列

pandas每次使用append追加行时多出一个Unnamed列!解决办法:追加行数据前,read_csv函数读取数据时, 增加 index_col 参数,指定哪一行为索引行。如:test = pd....
  • ChenVast
  • ChenVast
  • 2018-04-18 20:26:32
  • 19

用Python3读取CSV类型文件时出现无效字节延续的问题

用python代码读取CSV类型文件的数据时出现以下问题解决的办法:Traceback (most recent call last): File "C:/Users/gwp/PycharmPro...
  • gwpjiayou
  • gwpjiayou
  • 2017-09-17 10:10:37
  • 220

pandas io tools(使用python处理数据时候经常用到)读csv,TXT

CSV & Text files The two workhorse functions for reading text files (a.k.a. flat files) are read_cs...
  • u010159842
  • u010159842
  • 2016-10-18 11:04:31
  • 1876

Python使用pandas处理CSV文件

Python中有许多方便的库可以用来进行数据处理,尤其是Numpy和Pandas,再搭配matplot画图专用模块,功能十分强大。CSV(Comma-Separated Values)格式的文件是指以...
  • atnanyang
  • atnanyang
  • 2017-04-26 20:55:09
  • 18393

python 37 pandas操作csv文件小结,csv文件合并

cp /home/hx133330/wly/luna16/src/evaluation/annotations/annotations.csv .import pandas as pddf = pd....
  • qq_16949707
  • qq_16949707
  • 2017-07-25 21:43:31
  • 3754

使用python pandas读取csv文件数据

csv是我接触的比较早的一种文件,比较好的是这种文件既能够以电子表格的形式查看又能够以文本的形式查看。最早接触是在别人的Perl脚本中,或许是为了充分利用Perl的文本处理能力。不过,日常的生活工作中...
  • grey_csdn
  • grey_csdn
  • 2017-04-13 23:23:29
  • 18127

【Python学习系列十二】Python库pandas之CSV导入

Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高...
  • fjssharpsword
  • fjssharpsword
  • 2017-06-12 21:03:07
  • 2926

Pandas处理csv表格

1.安装pandas pip install pandas 或者源码安装: git clone git://github.com/pydata/pandas.git cd pandas py...
  • summerviva
  • summerviva
  • 2016-04-29 00:32:30
  • 11452

利用pandas模块读取csv文件和excel表格,并用matplotlib画图

# coding=utf-8 import pandas as pd # 读取csv文件 3列取名为 name,sex,births,后面参数格式为names= names1880 = pd.read...
  • u013692888
  • u013692888
  • 2017-07-26 10:32:11
  • 3331
收藏助手
不良信息举报
您举报文章:python pandas IO tools 之csv文件读写
举报原因:
原因补充:

(最多只允许输入30个字)