學習筆記,僅供參考
參考自: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