需求:給定一個dataframe和一個list,list中存放的是dataframe中某一列的元素,刪除dataframe中與list元素重復的行(即取差集)。
在網上搜了一圈,好像沒看到DataFrame中取差集的方式,所以自己寫了一個。方法比較繁瑣,如果有更簡便的方式,請留言。
import pandas as pddata = [[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]# 重置indexres.index = [i for i in range(len(res))]print(res)
以上這篇python DataFrame 取差集實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答