学习笔记,仅供参考
参考自:pandas.read_csv参数详解;《python编程从数据分析到数据编程》
当前工作目录就是python(准确的说,是python解释器和编辑器)的读写文件和文件夹的默认路径。
In [35]: os.getcwd()
Out[35]: 'C:\\Users\\goatbishop'
In [36]: os.chdir(r"C:\Users\goatbishop\Desktop\data")
In [37]: os.getcwd()
Out[37]: 'C:\\Users\\goatbishop\\Desktop\\data'
In [39]: data = open("car_info_train.csv", "r")
In [40]: data.readline()
Out[40]:'CUST_ID,CUST_SEX,CUST_AGE,CUST_MARRY,BUYERPART,CAR_MODEL,CAR_COLOR,CAR_AGE,CAR_PRICE,IS_LOAN,LOAN_PERIED,LOAN_AMOUNT,F_INSORNOT,ALL_BUYINS_N,DLRSI_CNT,GLASSBUYSEPARATE_CNT,SII_CNT,IS_LOST\n'
In [42]: data.close()
对于不同类型的文件,我们应该采取不同的策略导入文件。
由于在分析数据时,经常要导入csv文件,所以,我们介绍一下Pandas第三方包里的read_csv方法(这里只写了部分参数):
import pandas as pd
pd.read_csv(filepath_or_buffer, sep = ',',
header = 'infer', names=None,
nrows = None, index_col = None)
参数 | 说明 |
---|---|
filepath_or_buffer | 读取的文件名,参数值类型为字符串,这个字符串也可以是URL |
sep | 指定分隔符,如果不指定参数,则会尝试使用逗号分隔 |
header | 指定行数用来作为列名,参数可以是int类型数据,或是填装int类型数据的列表,当参数值为0时,表示将文件第1行(索引为0的行)为列索引,当参数值为None时,则会将文件当成无列名的文件,这样read_csv会从0开始,为其自动加上列索引 |
names | 设置列名的列表,如果数据文件中没有列标题行,就需要执行header=None,我们知道read_csv会帮助我们自动添加列索引,这时,我们可以利用names属性手动指定列名,且列名列表中不能出现重复元素 |
nrows | 需要读取的行数(从文件头开始算起),属性值为int类型 |
index_col | 将真实的某列当做index,属性值为int类型 |
我们先看一下原始数据testData.csv文件:
id | age | money | other |
---|---|---|---|
1 | 20 | 8000 | 1 |
2 | 32 | 7000 | 0 |
3 | 21 | 6000 | 1 |
4 | 24 | 5000 | 1 |
5 | 30 | 4000 | 0 |
6 | 19 | 3000 | 1 |
7 | 18 | 2000 | 0 |
8 | 25 | 10000 | 1 |
9 | 27 | 11000 | 0 |
10 | 22 | 12000 | 0 |
读取方式1:
In [47]: data = read_csv("testData.csv")
In [48]: data
Out[48]:
id age money other
0 1 20 8000 1
1 2 32 7000 0
2 3 21 6000 1
3 4 24 5000 1
4 5 30 4000 0
5 6 19 3000 1
6 7 18 2000 0
7 8 25 10000 1
8 9 27 11000 0
9 10 22 12000 0
读取方式2:
In [49]: data = read_csv("testData.csv", header = None)
In [50]: data
Out[50]:
0 1 2 3
0 id age money other
1 1 20 8000 1
2 2 32 7000 0
3 3 21 6000 1
4 4 24 5000 1
5 5 30 4000 0
6 6 19 3000 1
7 7 18 2000 0
8 8 25 10000 1
9 9 27 11000 0
10 10 22 12000 0
读取方式3:
In [51]: data = read_csv("testData.csv", header = None, names = ['a', 'b', 'c', 'd'])
In [52]: data
Out[52]:
a b c d
0 id age money other
1 1 20 8000 1
2 2 32 7000 0
3 3 21 6000 1
4 4 24 5000 1
5 5 30 4000 0
6 6 19 3000 1
7 7 18 2000 0
8 8 25 10000 1
9 9 27 11000 0
10 10 22 12000 0
读取方式4:
In [60]: data = read_csv("testData.csv", nrows = 6)
In [61]: data
Out[61]:
id age money other
0 1 20 8000 1
1 2 32 7000 0
2 3 21 6000 1
3 4 24 5000 1
4 5 30 4000 0
5 6 19 3000 1
读取方式5:
In [62]: data = read_csv("testData.csv", index_col = 0)
In [63]: data
Out[63]:
age money other
id
1 20 8000 1
2 32 7000 0
3 21 6000 1
4 24 5000 1
5 30 4000 0
6 19 3000 1
7 18 2000 0
8 25 10000 1
9 27 11000 0
10 22 12000 0