pandas讀取完的csv資料格式
使用pandas讀取csv檔案讀取出來的資料其實還是有一定附加格式的,那就是行列標題。
In [18]: data1 = pd.read_csv('data.csv')
In [19]: data1
Out[19]:
index name comment Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6
0 1 name_01 coment_01 NaN NaN NaN NaN
1 2 name_02 coment_02 NaN NaN NaN NaN
2 3 name_03 coment_03 NaN NaN NaN NaN
3 4 name_04 coment_04 NaN NaN NaN NaN
4 5 name_05 coment_05 NaN NaN NaN NaN
5 6 name_06 coment_06 NaN NaN NaN NaN
6 7 name_07 coment_07 NaN NaN NaN NaN
7 8 name_08 coment_08 NaN NaN NaN NaN
8 9 name_09 coment_09 NaN NaN NaN NaN
9 10 name_10 coment_10 NaN NaN NaN NaN
10 11 name_11 coment_11 NaN NaN NaN NaN
11 12 name_12 coment_12 NaN NaN NaN NaN
12 13 name_13 coment_13 NaN NaN NaN NaN
13 14 name_14 coment_14 NaN NaN NaN NaN
14 15 name_15 coment_15 NaN NaN NaN NaN
15 16 name_16 coment_16 NaN NaN NaN NaN
16 17 name_17 coment_17 NaN NaN NaN NaN
17 18 name_18 coment_18 NaN NaN NaN NaN
18 19 name_19 coment_19 NaN NaN NaN NaN
19 20 name_20 coment_20 NaN NaN NaN NaN
20 21 name_21 coment_21 NaN NaN NaN NaN
而檢視原始資料的時候可以看出,最左側的標號欄是沒有的。原始資料如下:
GreydeMac-mini:chapter06 greyzhang$ cat data.csv
index,name,comment,,,,
1,name_01,coment_01,,,,
2,name_02,coment_02,,,,
3,name_03,coment_03,,,,
4,name_04,coment_04,,,,
5,name_05,coment_05,,,,
6,name_06,coment_06,,,,
7,name_07,coment_07,,,,
8,name_08,coment_08,,,,
9,name_09,coment_09,,,,
10,name_10,coment_10,,,,
11,name_11,coment_11,,,,
12,name_12,coment_12,,,,
13,name_13,coment_13,,,,
14,name_14,coment_14,,,,
15,name_15,coment_15,,,,
16,name_16,coment_16,,,,
17,name_17,coment_17,,,,
18,name_18,coment_18,,,,
19,name_19,coment_19,,,,
20,name_20,coment_20,,,,
21,name_21,coment_21,,,,
而第一行也被自動處理成了類似於標題的格式。再看一下read_table的資料可以看出,雖然同樣讀出了資料,但是這個功能中並沒有擴充套件標題。不過,這個似乎是因為處理分隔符引數預設原因造成的。
In [20]: data2 = pd.read_table('data.csv')
In [21]: data2
Out[21]:
index,name,comment,,,,
0 1,name_01,coment_01,,,,
1 2,name_02,coment_02,,,,
2 3,name_03,coment_03,,,,
3 4,name_04,coment_04,,,,
4 5,name_05,coment_05,,,,
5 6,name_06,coment_06,,,,
6 7,name_07,coment_07,,,,
7 8,name_08,coment_08,,,,
8 9,name_09,coment_09,,,,
9 10,name_10,coment_10,,,,
10 11,name_11,coment_11,,,,
11 12,name_12,coment_12,,,,
12 13,name_13,coment_13,,,,
13 14,name_14,coment_14,,,,
14 15,name_15,coment_15,,,,
15 16,name_16,coment_16,,,,
16 17,name_17,coment_17,,,,
17 18,name_18,coment_18,,,,
18 19,name_19,coment_19,,,,
19 20,name_20,coment_20,,,,
20 21,name_21,coment_21,,,,
嘗試加上分隔符引數,得出的結果如下:
In [23]: data3 = pd.read_table('data.csv',',')
In [24]: data3
Out[24]:
index name comment Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6
0 1 name_01 coment_01 NaN NaN NaN NaN
1 2 name_02 coment_02 NaN NaN NaN NaN
2 3 name_03 coment_03 NaN NaN NaN NaN
3 4 name_04 coment_04 NaN NaN NaN NaN
4 5 name_05 coment_05 NaN NaN NaN NaN
5 6 name_06 coment_06 NaN NaN NaN NaN
6 7 name_07 coment_07 NaN NaN NaN NaN
7 8 name_08 coment_08 NaN NaN NaN NaN
8 9 name_09 coment_09 NaN NaN NaN NaN
9 10 name_10 coment_10 NaN NaN NaN NaN
10 11 name_11 coment_11 NaN NaN NaN NaN
11 12 name_12 coment_12 NaN NaN NaN NaN
12 13 name_13 coment_13 NaN NaN NaN NaN
13 14 name_14 coment_14 NaN NaN NaN NaN
14 15 name_15 coment_15 NaN NaN NaN NaN
15 16 name_16 coment_16 NaN NaN NaN NaN
16 17 name_17 coment_17 NaN NaN NaN NaN
17 18 name_18 coment_18 NaN NaN NaN NaN
18 19 name_19 coment_19 NaN NaN NaN NaN
19 20 name_20 coment_20 NaN NaN NaN NaN
20 21 name_21 coment_21 NaN NaN NaN NaN
加上分隔符引數之後,兩個的功能倒是十分一致。在書中看到有一種缺少標題的資料格式,到現在為止還沒有理解其中的功能,沒有構造出這樣的輸入資料。後期再慢慢摸索一下。