如何用Pandas提取DataFrame某列中另一列没有的值
提取df1独有的A列值生成新DataFrame df3
方法一:布尔索引 + isin()
这是最直观的实现方式,通过判断值的存在性筛选目标行:
import pandas as pd # 示例数据(实际使用时替换为你的df1、df2) df1 = pd.DataFrame({'A': ['I-13856942', 'I-13856914', 'I-13861633', 'I-13875002', 'I-13875673']}) df2 = pd.DataFrame({'A': ['I-13856942', 'I-13856914', 'I-13861633']}) # 筛选df1中A列不在df2中的行 df3 = df1[~df1['A'].isin(df2['A'])]
执行后df3的输出:
| A |
|---|
| I-13875002 |
| I-13875673 |
方法二:merge关联筛选
适合大数据量场景或需要明确关联逻辑的情况:
# 左连接df1和df2,新增来源标记列 df3 = df1.merge(df2, on='A', how='left', indicator=True) # 仅保留仅在df1中存在的行,删除标记列 df3 = df3[df3['_merge'] == 'left_only'].drop(columns='_merge')
得到的结果与方法一完全一致。
内容的提问来源于stack exchange,提问作者asmaa mahmoud
相关产品推荐
相关产品推荐

