如何将csv文件读入Python 2d数组?

时间:2015-04-20 01:04:16

标签: python arrays csv numpy pandas

例如,我有一个csv文件,如:

| a | b | c |
  1   2   3
  4   5   6 
  7   8   9
  10  11  12

我需要从这个csv文件创建一个numpy.ndarray。对于这个例子,它的大小应该是(2,3)。

应该是这样的

5(1+4), 7(2+5), 9(3+6)
17, 19, 21

对自己的行(每2行)求和

可以使用熊猫,numpy或类似的库。实际上我正在和熊猫一起阅读csv,但之后我就做不到了。

任何帮助都是适当的。

1 个答案:

答案 0 :(得分:2)

如果您使用的是pandas,则可以使用groupby

>>> df
    a   b   c
0   1   2   3
1   4   5   6
2   7   8   9
3  10  11  12
>>> df.groupby(np.arange(len(df))//2).sum()
    a   b   c
0   5   7   9
1  17  19  21

这可行,因为groupby可以对您传递的内容进行分组,而不仅仅是列名称,在这种情况下,我们会传递一个具有正确组号的数组:

>>> np.arange(len(df))
array([0, 1, 2, 3])
>>> np.arange(len(df))//2
array([0, 0, 1, 1])

如果您确实需要ndarray而不是数据框,可以通过.values访问它。

>>> df.groupby(np.arange(len(df))//2).sum().values
array([[ 5,  7,  9],
       [17, 19, 21]], dtype=int64)