我尝试从下面的数据框中获取所有出现的总和“ 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/

10-12 16:58