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

如何在Pandas中按ID合并两个DataFrame且避免分类列重复显示?

实现步骤

1. 合并DataFrame

通过左连接将两个DataFrame按id列合并,确保df1的所有数据都被保留,同时匹配df2中对应id的多条记录。

2. 去除重复的category值

对合并后的结果,同一id下仅保留第一行的category值,后续行的category设为空字符串。

完整代码示例

import pandas as pd

# 构造示例数据
df1 = pd.DataFrame({
    'id': [1, 2],
    'category': ['cat1', 'cat2']
})

df2 = pd.DataFrame({
    'id': [1, 1],
    'category_name': ['shoes', 'car']
})

# 左连接合并两个DataFrame
merged_df = pd.merge(df1, df2, on='id', how='left')

# 处理category列:同一id仅保留第一个值,其余置空
merged_df['category'] = merged_df['category'].mask(merged_df.duplicated(subset='id', keep='first'), '')

# 将category_name的空值转为空字符串,匹配期望格式
merged_df['category_name'] = merged_df['category_name'].fillna('')

print(merged_df)

输出结果

id category category_name
0   1     cat1          shoes
1   1                   car
2   2     cat2               

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 10:52:45