目标
我有一个Pandas数据框,如下所示,有多个列,希望得到列的总数,MyColumn
。
数据帧-df
:
print df
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
我的尝试:
我试图使用groupby
和.sum()
获取列的总和:
Total = df.groupby['MyColumn'].sum()
print Total
这将导致以下错误:
TypeError: 'instancemethod' object has no attribute '__getitem__'
预期输出
我本以为结果如下:
319
或者,我希望df
使用名为TOTAL
的新row
进行编辑,该df
包含总数:
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
TOTAL 319
与获取数据帧的长度
len(df)
类似,以下操作也适用于pandas和blaze:或者
您应该使用^{} :
然后将^{} 与
Series
一起使用,在这种情况下,应该将索引设置为与需要求和的特定列相同:因为如果传递scalar,则将填充所有行的值:
另外两个解决方案是使用^{} ,和^{} 查看下面的应用程序:
注意:自Pandas v0.20以来,
ix
已被弃用。请改用loc
或iloc
。另一个选择是:
您还可以使用
append()
方法:更新:
如果需要为所有数值列追加sum,可以执行以下操作之一:
使用
append
以函数方式执行此操作(不更改原始数据帧):使用
loc
在适当位置改变数据帧:相关问题 更多 >
编程相关推荐