Python DataFrame 取差集:删除指定列中匹配列表元素的行

拾柒
拾柒
发布时间:2026-10-13 | 6人浏览过
原创

本文介绍如何在 Python 的 DataFrame 中计算差集,即删除指定列中与给定列表元素重复的行。通过 isin 方法生成布尔掩码并取反,实现高效筛选,最后重置索引输出结果。

需求场景:给定一个 DataFrame 对象和一个列表,该列表包含 DataFrame 中某一列的部分元素。目标是删除 DataFrame 中与该列表元素重复的行,即计算并保留差集部分。

经搜索网络资源,未发现直接针对 DataFrame 取差集的现成方法,因此手动实现了一种解决方案。该方法步骤较为繁琐,若读者有更简便的实现方式,欢迎在评论区留言分享。

import pandas as pd
data = [[1,2,3],[2,3,4],[3,4,5],[4,5,6]]
# 创建dataframe,包含a,b,c三列
df = pd.DataFrame(data, columns=['a','b','c'])
print(df)
# a 列中待删除的元素
a_to_drop = [1, 3]
# 找到待删除元素所在的位置,返回的是 true or false 序列
flag = df['a'].isin(a_to_drop)
# 由于我们要取差集,因此对上述序列取反
diff_flag = [not f for f in flag]
# res 为我们所需要的差集
res = df[diff_flag]
# 重置index
res.index = [i for i in range(len(res))]
print(res)

以上关于 Python DataFrame 取差集的实例分享完毕,希望能为大家提供有效的参考。如果觉得有用,欢迎点赞并支持本站,感谢大家的支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表