python观察日志(part22)--设置工作目录及文件读取

学习笔记,仅供参考

参考自: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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章