You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并DataFrame中仅第二列不同的重复行?

解决方法

用pandas的groupby+agg组合就能轻松实现,完全不需要写复杂的循环。

示例代码

假设你的DataFrame列名为col1、col2、col3(除第二列col2外,其余列值重复):

import pandas as pd

# 构造示例数据
data = {
    'col1': ['A', 'A', 'B', 'B'],
    'col2': ['ValueA', 'ValueB', 'ValueC', 'ValueD'],
    'col3': ['X', 'X', 'Y', 'Y']
}
df = pd.DataFrame(data)

# 方式1:将第二列合并为列表
result_list = df.groupby(['col1', 'col3'])['col2'].agg(list).reset_index()

# 方式2:将第二列用分号分隔合并
result_semicolon = df.groupby(['col1', 'col3'])['col2'].agg('; '.join).reset_index()

关键说明

  • groupby(['col1', 'col3']):按除第二列外的所有列分组,把这些列值完全一致的行归为同一组
  • agg(list):对每组的col2值聚合为列表;agg('; '.join)则是把值用「分号+空格」连接成字符串
  • reset_index():将分组用的列从索引还原为普通列,得到结构规整的新DataFrame

如果需要转换成字典,直接用to_dict()即可:

# 转换为字典(以col1+col3为键,col2的合并值为值)
result_dict = result_semicolon.set_index(['col1', 'col3'])['col2'].to_dict()

内容的提问来源于stack exchange,提问作者FuchsiaCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:42:02