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