使用pandas将numpy中的数组数据保存到csv文件

时间:2021-01-27 19:02:13

接触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文件的效果如下:

使用pandas将numpy中的数组数据保存到csv文件