Python DataFrame 取差集:删除指定列中匹配列表元素的行
本文介绍如何在 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 取差集的实例分享完毕,希望能为大家提供有效的参考。如果觉得有用,欢迎点赞并支持本站,感谢大家的支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













