使用 isin 函数过滤 pandas [英] pandas filtering using isin function
本文介绍了使用 isin 函数过滤 pandas 的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个数据框,如下所示df1:
I have two dataframe as shown below df1:
ID Name
1 Sachin
2 Kholi
3 Dravid
df2:
ID Run
1 20
2 60
2 10
1 5
从上面我想通过只在 df2 中获取唯一的 id 来过滤 df1:
From the above I want to filter df1 by only taking unique ids in df2:
预期输出:
ID Name
3 Dravid
我试过下面的代码
def diff(first, second):
second = set(second)
units_in_unit_table = [item for item in first if item not in second]
return units_in_unit_table
id_df2 = diff(df2, df1)
df3 = df1[df1['ID'].isin(id_df2)]
推荐答案
看来您的解决方案应该通过 Series.unique
带有 的反转掩码~代码>:
It seems your solution should be simplify by pass unique values to isin
by Series.unique
with invert mask by ~
:
df3 = df1[~df1['ID'].isin(df2['ID'].unique())]
或者通过set
:
df3 = df1[~df1['ID'].isin(set(df2['ID']))]
<小时>
print (df3)
ID Name
2 3 Dravid
这篇关于使用 isin 函数过滤 pandas 的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文