例如,我有一个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,但之后我就做不到了。
任何帮助都是适当的。
答案 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)