1. 程式人生 > >使用pandas將numpy中的陣列資料儲存到csv檔案

使用pandas將numpy中的陣列資料儲存到csv檔案

接觸pandas之後感覺它的很多功能似乎跟numpy有一定的重複,尤其是各種運算。不過,簡單的瞭解之後發現在資料管理上pandas有著更為豐富的管理方式,其中一個很大的優點就是多出了對資料檔案的管理。

如果想儲存numpy中的陣列元素到一個檔案中,通過純Python的檔案寫入當然是可以實現的,但是總覺得是少了一點便捷性。在這方面,pandas工具的使用就會讓工作方便很多。下面通過一個簡單的小例子來演示一下。

首先,建立numpy中的陣列。

In [18]: arr1 = np.arange(100).reshape(10,10)

In [19]: arr1

Out[19]: 

array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],

       [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],

       [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],

       [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],

       [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],

       [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],

       [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],

       [70, 71, 72, 73, 74, 75, 76, 77, 78, 79],

       [80, 81, 82, 83, 84, 85, 86, 87, 88, 89],

       [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]])

接著,為了能夠使這組資料成為可以讓pandas處理的資料,需要通過這個陣列建立DataFrame

In [20]: data1 = DataFrame(arr1)

這樣,就可以通過pandasDataFrameto_csv方法實現資料檔案的儲存了。具體如下:

In [21]: data1.to_csv('data1.csv')

In [22]: cat data1.csv

,0,1,2,3,4,5,6,7,8,9

0,0,1,2,3,4,5,6,7,8,9

1,10,11,12,13,14,15,16,17,18,19

2,20,21,22,23,24,25,26,27,28,29

3,30,31,32,33,34,35,36,37,38,39

4,40,41,42,43,44,45,46,47,48,49

5,50,51,52,53,54,55,56,57,58,59

6,60,61,62,63,64,65,66,67,68,69

7,70,71,72,73,74,75,76,77,78,79

8,80,81,82,83,84,85,86,87,88,89

9,90,91,92,93,94,95,96,97,98,99

回頭看一下被儲存的資料格式:

In [23]: data1

Out[23]: 

    0   1   2   3   4   5   6   7   8   9

0   0   1   2   3   4   5   6   7   8   9

1  10  11  12  13  14  15  16  17  18  19

2  20  21  22  23  24  25  26  27  28  29

3  30  31  32  33  34  35  36  37  38  39

4  40  41  42  43  44  45  46  47  48  49

5  50  51  52  53  54  55  56  57  58  59

6  60  61  62  63  64  65  66  67  68  69

7  70  71  72  73  74  75  76  77  78  79

8  80  81  82  83  84  85  86  87  88  89

9  90  91  92  93  94  95  96  97  98  99

In [24]: type(data1)

Out[24]: pandas.core.frame.DataFrame

從上面的結果看一看出,轉換成DataFrame的同時,資料資訊增加了行列標題資訊。

通過電子表格軟體開啟csv檔案的效果如下: