首页 > 其他 > 详细

padas读取文件的read_csv()函数使用方法

时间:2021-06-16 22:07:01      阅读:27      评论:0      收藏:0      [点我收藏+]

  1 import pandas as pd
  2 pd.read_csv(filepath_or_buffer,header,parse_dates,index_col)
  3 参数:
  4 filepath_or_buffer:
  5 字符串,或者任何对象的read()方法。这个字符串可以是URL,有效的URL方案包括http、ftp、s3和文件。可以直接写入"文件名.csv"
  6 
  7 header:
  8 将行号用作列名,且是数据的开头。
  9 注意当skip_blank_lines=True时,这个参数忽略注释行和空行。所以header=0表示第一行是数据而不是文件的第一行。
 10 
 11 【注】:如果csv文件中含有中文,该如何?
 12 1、可修改csv文件的编码格式为unix(不能是windows)(用notepad++打开修改)
 13 2、df = pd.read_csv(csv_file, encoding="utf-8"),设置读取时的编码或 encoding="gbk"
 14 3、在使用列名来访问DataFrame里面的数据时,对于中文列名,应该在列名前面加u,表示后面跟的字符串以unicode格式存储,如下所示
 15 print(df[u"经度(度)"])
 16 
 17 (1)、header=None
 18 即指定原始文件数据没有列索引,这样read_csv为其自动加上列索引{从0开始}
 19 ceshi.csv原文件内容:
 20 c1,c2,c3,c4
 21 a,0,5,10
 22 b,1,6,11
 23 c,2,7,12
 24 d,3,8,13
 25 e,4,9,14
 26 
 27 df=pd.read_csv("ceshi.csv",header=None)
 28 print(df)
 29 结果:
 30     0   1   2   3
 31 0  c1  c2  c3  c4
 32 1   a   0   5  10
 33 2   b   1   6  11
 34 3   c   2   7  12
 35 4   d   3   8  13
 36 5   e   4   9  14
 37 
 38 (2)、header=None,并指定新的索引的名字names=seq序列
 39 df=pd.read_csv("ceshi.csv",header=None,names=range(2,6))
 40 print(df)
 41 结果:
 42     2   3   4   5
 43 0  c1  c2  c3  c4
 44 1   a   0   5  10
 45 2   b   1   6  11
 46 3   c   2   7  12
 47 4   d   3   8  13
 48 5   e   4   9  14
 49 
 50 
 51 (3)、header=None,并指定新的索引的名字names=seq序列;如果指定的新的索引名字的序列比原csv文件的列数少,那么就截取原csv文件的倒数列添加上新的索引名字
 52 df=pd.read_csv("ceshi.csv",header=0,names=range(2,4))
 53 print(df)
 54 结果:
 55         2   3
 56 c1 c2  c3  c4
 57 a  0    5  10
 58 b  1    6  11
 59 c  2    7  12
 60 d  3    8  13
 61 e  4    9  14
 62 
 63 
 64 (4)、header=0
 65 表示文件第0行(即第一行,索引从0开始)为列索引
 66 df=pd.read_csv("ceshi.csv",header=0)
 67 print(df)
 68 结果:
 69   c1  c2  c3  c4
 70 0  a   0   5  10
 71 1  b   1   6  11
 72 2  c   2   7  12
 73 3  d   3   8  13
 74 4  e   4   9  14
 75 
 76 (5)、header=0,并指定新的索引的名字names=seq序列
 77 df=pd.read_csv("ceshi.csv",header=0,names=range(2,6))
 78 print(df)
 79 结果:
 80    2  3  4   5
 81 0  a  0  5  10
 82 1  b  1  6  11
 83 2  c  2  7  12
 84 3  d  3  8  13
 85 4  e  4  9  14
 86 注:这里是把原csv文件的第一行换成了range(2,6)并将此作为列索引
 87 
 88 (6)、header=0,并指定新的索引的名字names=seq序列;如果指定的新的索引名字的序列比原csv文件的列数少,那么就截取原csv文件的倒数列添加上新的索引名字
 89 df=pd.read_csv("ceshi.csv",header=0,names=range(2,4))
 90 print(df)
 91 结果:
 92      2   3
 93 a 0  5  10
 94 b 1  6  11
 95 c 2  7  12
 96 d 3  8  13
 97 e 4  9  14
 98 
 99 
100 parse_dates:
101 布尔类型值 or int类型值的列表 or 列表的列表 or 字典(默认值为 FALSE)
102 (1)True:尝试解析索引
103 (2)由int类型值组成的列表(如[1,2,3]):作为单独数据列,分别解析原始文件中的1,2,3列
104 (3)由列表组成的列表(如[[1,3]]):将1,3列合并,作为一个单列进行解析
105 (4)字典(如{foo:[1, 3]}):解析1,3列作为数据,并命名为foo
106 
107 
108 index_col:
109 int类型值,序列,FALSE(默认 None)
110 将真实的某列当做index(列的数目,甚至列名)
111 index_col为指定数据中那一列作为Dataframe的行索引,也可以可指定多列,形成层次索引,默认为None,即不指定行索引,这样系统会自动加上行索引。
112 
113 举例:
114 df=pd.read_csv("ceshi.csv",index_col=0)
115 print(df)
116 结果:
117     c2  c3  c4
118 c1            
119 a    0   5  10
120 b    1   6  11
121 c    2   7  12
122 d    3   8  13
123 e    4   9  14
124 表示:将第一列作为索引index
125 
126 df=pd.read_csv("ceshi.csv",index_col=1)
127 print(df)
128 结果:
129    c1  c3  c4
130 c2           
131 0   a   5  10
132 1   b   6  11
133 2   c   7  12
134 3   d   8  13
135 4   e   9  14
136 表示:将第二列作为索引index
137 
138 
139 df=pd.read_csv("ceshi.csv",index_col="c1")
140 print(df)
141 结果:
142     c2  c3  c4
143 c1            
144 a    0   5  10
145 b    1   6  11
146 c    2   7  12
147 d    3   8  13
148 e    4   9  14
149 表示:将列名"c1"这里一列作为索引index
150 【注】:这里将"c1"这一列作为索引即行索引后,"c1"这列即不在属于列名这类,即不能使用df[c1]获取列值
151 【注】:read_csv()方法中header参数和index_col参数不能混用,因为header指定列索引,index_col指定行索引,一个DataFrame对象只有一种索引
152 
153 squeeze:
154 布尔值,默认FALSE
155 TRUE 如果被解析的数据只有一列,那么返回Series类型。
转载至:https://www.jianshu.com/p/ebb64a159104

padas读取文件的read_csv()函数使用方法

原文:https://www.cnblogs.com/rkj12345/p/14890013.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!