我有如下两个数据帧:-
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