熊猫检查两列之间是否存在重复值

时间:2020-06-04 17:27:29

标签: python pandas

我有两个这样的数据集:

数据集1:

Name | Age
John | 22
Bill | 19
Jess | 21

数据集2:

Name | Age
Tati | 29
Dray | 18
John | 24 

我想比较两个数据集的两列“名称”并获取输出:“约翰”,因为这是两列中的重复名称。

到目前为止我拥有的代码:

import pandas as pd

first_df = pd.read_excel("dataset1.xlsx")
second_df = pd.read_excel("dataset2.xlsx")

first_df['Name'].isin(second_df['Name']).value_counts()

输出为:

False: 2
True: 1

但是我想看看哪个是重复的名字。

2 个答案:

答案 0 :(得分:2)

一种方法是在Name上依次使用isinvalue_counts

df1.loc[df1.Name.isin(df2.Name), 'Name'].value_counts()

John    1
Name: Name, dtype: int64

如果不需要计数,则更简单的方法是:

set(first_df.Name).intersection(second_df.Name)
# {'John'}

答案 1 :(得分:1)

yatu给出了一个很好的答案,但我只想向您展示您实际上有多近:

multiple_occurrences = first_df["Name"].isin(second_df["Name"])
first_df[multiple_occurrences]

最后一行的结果:

   Name  Age
0  John   22

或者如果您只想使用名称:

multiple_occurrences = first_df["Name"].isin(second_df["Name"])
list(first_df[multiple_occurrences]["Name"])

最后一行的结果:

['John']