如何在Pandas DataFrame中按分组合并行并拼接指定字段?
分组合并DataFrame:拼接字段与求和字段
你可以用pandas的groupby结合agg方法实现需求,具体步骤如下:
1. 导入pandas并创建输入DataFrame
import pandas as pd df = pd.DataFrame({ 'col_a': ['Alex', 'Alex', 'David', 'Alex'], 'col_b': ['Milk', 'Sugar', 'Rice', 'Wheat'], 'col_c': [5, 4, 3, 1], 'col_d': ['UK', 'USA', 'Spain', 'UK'] })
2. 分组并指定字段处理逻辑
通过groupby按col_a和col_d分组,再用agg为不同字段设置对应处理规则:
col_b:用' | '.join拼接分组内所有值col_c:用sum计算分组内的总和
代码如下:
result = df.groupby(['col_a', 'col_d'], as_index=False).agg( col_b=('col_b', ' | '.join), col_c=('col_c', 'sum') )
3. 查看结果
打印result即可得到目标输出:
col_a col_d col_b col_c 0 Alex UK Milk | Wheat 6 1 Alex USA Sugar 4 2 David Spain Rice 3
其中as_index=False用于让分组列(col_a和col_d)保持为普通数据列,与你期望的输出格式一致。
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

