如何按Name列合并DataFrame重复行并拼接对应Category列内容
解决方案
你可以通过pandas的分组聚合功能实现需求,核心逻辑是将除Category外的所有列作为分组键,对Category列执行合并操作即可:
- 首先导入pandas库:
import pandas as pd - 核心处理代码:
# 提取除Category外的所有列作为分组键 group_cols = [col for col in df.columns if col != 'Category'] # 按分组聚合,将同分组的Category合并为逗号分隔的字符串 result_df = df.groupby(group_cols, as_index=False)['Category'].agg(','.join)
如果需要将合并后的Category存储为列表格式,仅需修改聚合规则即可:
result_df = df.groupby(group_cols, as_index=False)['Category'].agg(list)
逻辑说明
相同Name对应的其余列取值一致,将其余列全部加入分组键不会额外生成冗余分组,同时可以保证分组后其余列取值和原数据完全一致,仅合并同分组下的不同Category值。
内容的提问来源于stack exchange,提问作者Haris Ahmad
相关产品推荐
相关产品推荐

