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
原文:https://www.cnblogs.com/rkj12345/p/14890013.html