如何在Pandas中仅将主DataFrame不存在的批次数据追加至其中?
Pandas实现指定批次数据合并的方法
需求说明
从Df2中仅提取Batch为'D'的行(该批次未在Df1中出现),并将其合并到Df1中,保留原数据的索引结构。
实现代码
import pandas as pd # 构造示例DataFrame df1 = pd.DataFrame({ 'Batch': ['A', 'A', 'B', 'B', 'C', 'C'], 'Result': [3, 5, 5, 6, 8, 3] }) df2 = pd.DataFrame({ 'Batch': ['C', 'C', 'D', 'D'], 'Result': [8, 3, 6, 1] }) # 筛选df2中Batch为'D'的行 df2_filtered = df2[df2['Batch'] == 'D'] # 合并到df1,保留原索引 df_combined = pd.concat([df1, df2_filtered], ignore_index=False) # 输出结果 print(df_combined)
代码解释
- 筛选目标数据:使用布尔索引
df2[df2['Batch'] == 'D']精准提取D批次的所有行,自动排除不需要的C批次数据。 - 合并数据:
pd.concat()用于按行拼接两个DataFrame,ignore_index=False参数会保留原DataFrame的索引(与你提供的示例输出索引一致);如果需要生成连续的新索引,可将该参数改为ignore_index=True。
输出结果
Batch Result 0 A 3 1 A 5 2 B 5 3 B 6 4 C 8 5 C 3 2 D 6 3 D 1
内容的提问来源于stack exchange,提问作者Hertyuw
相关产品推荐
相关产品推荐

