如何在Pandas DataFrame中按指定列分组合并数据为数组?
Pandas按多列分组合并列值的实现方法
步骤1:构造示例数据
先还原你给出的DataFrame:
import pandas as pd df = pd.DataFrame({ 'A': ['a', 'a', 'b', 'a'], 'B': ['b', 'c', 'a', 'b'], 'C': ['c1', 'c2', 'c3', 'c4'] })
步骤2:分组合并C列
使用groupby结合agg方法,按A、B列分组后将C列值合并为列表:
# 分组并聚合C列为列表 result = df.groupby(['A', 'B'])['C'].agg(list).reset_index()
可选:处理单元素列表(转为单个值)
如果希望单个元素的分组不显示列表格式(和你给出的输出一致),可以对结果再做一次处理:
result['C'] = result['C'].apply(lambda x: x[0] if len(x) == 1 else x)
最终结果
执行上述代码后,得到的result就是你需要的格式:
A B C 0 a b [c1, c4] 1 a c c2 2 b a c3
内容的提问来源于stack exchange,提问作者Jakub Sapko
相关产品推荐
相关产品推荐

