我有一个 pandas DataFrame
如下所示。
df = pd.DataFrame({
'Column1': ['A', 'B', 'C', 'A', 'B', 'A', 'C', 'A', 'B', 'B'],
'Column2': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'Column3': ['X','Y','Z','X', 'X', 'Z','X','Y','Z','X']})
我想按第 1 列进行分组。我还想对第 2 列中的这些值进行求和,并将第 3 列中的值添加为新列。
Column1 Column2 Column3
0 A 1 X
1 B 2 Y
2 C 3 Z
3 A 4 X
4 B 5 X
5 A 6 Z
6 C 7 X
7 A 8 Y
8 B 9 Z
9 B 10 X
预期结果
Column1 Column2 X Y Z
0 A 19 5 8 6
1 B 26 15 2 9
2 C 10 7 0 3
我查看了示例问题。但我找不到我的问题的答案。任何有关此问题的帮助都将不胜感激。
最佳答案
使用DataFrame.pivot_table
与 DataFrame.insert
:
df = df.pivot_table(index='Column1',
columns='Column3',
values='Column2',
aggfunc='sum',
fill_value=0).reset_index().rename_axis(None, axis=1)
df.insert(1, 'Column2', df.sum(axis=1))
print (df)
Column1 Column2 X Y Z
0 A 19 5 8 6
1 B 26 15 2 9
2 C 10 7 0 3
关于python - 将数据框中相同的列值分组,并将相同值的总和添加为新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67470504/