1. 程式人生 > >pandas讀取完的csv資料格式

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

加上分隔符引數之後,兩個的功能倒是十分一致。在書中看到有一種缺少標題的資料格式,到現在為止還沒有理解其中的功能,沒有構造出這樣的輸入資料。後期再慢慢摸索一下。