如何过滤两个数据帧中具有重复值的数据?



我有如下两个数据帧:-

import pandas 
import numpy as np
data = data = {'Name': ['Tom', 'Joseph', 'Krish', 'John','rack','rox','selena','jha'], 'Age': [20, 21,18,20,30,20,18,20]}
df = pd.DataFrame(data)  
print(df)
# Output :
#       Name    Age
#   0   Tom     20
1   Joseph  21
2   Krish   18
3   John    20
4   rack    30
5   rox     20
6   selena  18
7   jha     20
data = {'Named': ['Raj', 'kir', 'cena','ang'], 'Age': [20, 21,18,30]}  
df1 = pd.DataFrame(data)  

print(df1)
# Output :    
#   Named Age
# 0 Raj   20
# 1 kir   21
# 2 cena  18
# 3 ang   30

现在我想用df1的age列过滤df的age列。输出还应该包括重复的值。我试图使用简单的过滤器,排除重复,它只给出唯一的值。我如何过滤哪些包含重复的值?

我的代码和输出:
res = df1[df1['Age'].isin(df['Age'])]
Named    Age
0   Raj     20
1   kir     21
2   cena    18
3   ang     30

Execpted output:- 

Named  Age
0   Raj    20
1   kir    21
2   cena   18
3   Raj    20
4   ang    30
5   Raj    20
6   cena   18
7   Raj    20

看起来你想要右合并:

df1.merge(df[['Age']].dropna(), on='Age', how='right')

输出:

Named  Age
0   Raj   20
1   kir   21
2  cena   18
3   Raj   20
4   ang   30
5   Raj   20
6  cena   18
7   Raj   20

最新更新