如何根据其他数据框进行过滤

时间:2018-04-03 11:28:15

标签: python pandas

这是我的数据df

Id   Food
1    Apple
1    Banana
2    Banana
2    Cherry
3    Banana
4    DragonFruit

其他数据集df2

Id
2
4

结果将是

Id   Food
2    Banana
2    Cherry
4    DragonFruit

这是我的代码

df2['one'] = 1
df = df.merge(df2, on='Id', how='left')
df = df[df['one'] == 1]
df= df.drop_duplicates()
df = df[['Id' , 'Food']]

它有效,但我猜有更好的方法

2 个答案:

答案 0 :(得分:2)

我认为需要Id df2来自df = df[df['Id'].isin(df2['Id'])] print (df) Id Food 2 2 Banana 3 2 Cherry 5 4 DragonFruit

{{1}}

答案 1 :(得分:1)

作为替代解决方案,您可以继续使用merge,而不使用left参数(即。执行内部合并):

df.merge(df2, on='Id')

   Id         Food
0   2       Banana
1   2       Cherry
2   4  DragonFruit