这是我的数据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']]
它有效,但我猜有更好的方法
答案 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