如何基于另一个DataFrame的0列整数值删除pandas df1中的匹配行
实现方法
- 先对df2的目标列去重,转换为集合提升查询效率(1000多行的体量几乎无开销)
exclude_values = set(df2[0].unique())
- 直接用布尔索引过滤df1即可
# 若匹配失效可先统一两列的数据类型,例如统一转为整数: # df1[0] = df1[0].astype(int) # df2[0] = df2[0].astype(int) df1_result = df1[~df1[0].isin(exclude_values)]
读取优化补充:你当前读取df1用的
sep="\s"在遇到多个空格分隔时可能会生成空列,可替换为sep="\s+"适配多空白符的分隔场景,适配你给出的df1格式示例。
内容的提问来源于stack exchange,提问作者shoggananna
相关产品推荐
相关产品推荐

