我有多个具有相同名称的列(即3个名为“ box”的列),并且我需要有一个对这些值求和的列,以便可以连接我的数据框。有多种情况需要发生。
我尝试过df1 = df.groupby(level=0, axis=1).sum()
,但得到的一列没有值。 (即,在第一行中,“ box”:9,“ box”:1,“ box”:4应该成为一个名为“ box”的列,其值为14,但它显示的是一个名为“ box”但没有值的列)
答案 0 :(得分:2)
您可以使用LLnode
根据列名求和,并将其设置为要在其中添加结果的列。
下面的简单示例:
df['column_name'].sum(axis=1)
请注意,它不是对行中的每个值求和,而只是对名为“ b”的列中的值求和。
之所以有用,是因为当您按名称调用列并且该列是重复项时,>>> df
a b c b e
0 1 5 dd 1 6
1 2 9 ee 1 10
2 3 1 ff 1 2
>>> df['f'] = df['b'].sum(axis=1)
>>> df
a b c b e f
0 1 5 dd 1 6 6
1 2 9 ee 1 10 10
2 3 1 ff 1 2 2
会识别出这一事实。例如:
pandas
我建议重命名您重复的列名,并避免将来出现重复名所带来的不确定性。 This question对于如何执行此操作以及在从其他来源导入过程中如何避免它提出了很多建议。