我尝试从下面的数据框中获取所有出现的总和“ 1”的额外列(总计)。数据框具有多索引列(ID,效果和持续时间)。
ID Effect Duration X1 X2 X3
1888 High 5 1 0 1
1313 High 10 0 1 0
3455 Low 20 1 0 0
我的命令:
df['Total'] = df[df.columns].sum(1)
这在“总计”列中给了我一个意外的值。
获得的输出:
ID Effect Duration X1 X2 X3 Total
1888 High 5 1 0 1 11
1313 High 10 0 0 0 0
3455 Low 20 1 1 1 111
所需的输出:
ID Effect Duration X1 X2 X3 Total
1888 High 5 1 0 1 2
1313 High 10 0 0 0 0
3455 Low 20 1 1 1 3
如何使用python获取所需的输出?谢谢
最佳答案
您的列是字符串,而不是整数。在执行操作之前,首先将列转换为适当的类型:
df[['X1', 'X2', 'X3']].astype(int).sum(1)
关于python - 使用python对多索引表中的行值求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40753446/