如何通过比较不同的列名来找到两个不同数据框中的共同值?

数据挖掘 Python 熊猫
2021-10-12 14:29:29
If the data frames are as follows :
df1
column names = UniqueID  Age Gender
values = 213,21,F
         145,34,M
         890,23,F
df2
column names = ID Occupation Bill
               145 Teacher 45RS
               890 Student 70RS 
               456 Teacher 90Rs

我想使用一个函数,它在 df1 的“UniqueID”和 df2 的“ID”中找到公共值并存储在 df3 中。此外,df3 中存在的唯一列应该是“common ids”和 df2 的列。

2个回答

您可以使用pandas.merge()根据列获取公共行。试试这个:

df3 = pd.merge(df1, df2, how='inner', left_on='UniqueID', right_on='ID')

但是,这将为您提供所有列。之后你可以使用

df3.drop([column_names], inplace=True)

删除不需要的列。

df3 = df1[df['series_name'].isin(df2['series_name'])]

编辑:

根据请求添加详细信息。这种简单的方法可以比较 2 个不同的数据帧,将输出放在第三个。