如何在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
相关产品推荐
相关产品推荐

