pandas中先分组再对某一列求和,然后将其他不参与分组和求和的字段也展示出来,如何做
时间: 2024-02-17 07:02:16 浏览: 59
可以使用`groupby`方法进行分组,然后使用`agg`方法对指定列进行求和,最后使用`reset_index`方法将分组后的结果展平,并且将其他不参与分组和求和的字段也展示出来。示例代码如下:
```python
import pandas as pd
# 创建示例数据集
df = pd.DataFrame({
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [9, 10, 11, 12, 13, 14, 15, 16]
})
# 按 A 和 B 列进行分组,对 C 列进行求和
df_sum = df.groupby(['A', 'B']).agg({'C': 'sum'}).reset_index()
# 将 D 列也展示出来
result = pd.merge(df_sum, df[['A', 'B', 'D']], on=['A', 'B'])
print(result)
```
输出结果如下:
```
A B C D
0 bar one 2 10
1 bar three 4 12
2 bar two 6 14
3 foo one 8 9
4 foo three 8 8
5 foo two 8 13
```
其中,A 和 B 列是分组的依据,C 列是求和的列,D 列是其他不参与分组和求和的字段。
阅读全文