从两个数据框架的两个列中的相似值创建新的数据框架



我有两个数据框架(数据框架A和B).两个数据框架都包括列'Data'和'About',但其他列是不同的。

我想通过删除数据框B没有的行来更改数据框A。

例如:

Dataframe

A = {'Date': ["20-10-2020", "23-10-2020", "24-10-2020", "28-10-2020"], 
'About': [Sandra, Peter, Mare, Bas], 'Score': [15, 20, 35, 21],     
'Hours': [2, 4, 5, 1]}

Dataframe B

B = {'Date': ["20-10-2020", "26-10-2020", "24-10-2020", "28-10-2020"], 
'About': [Sandra, Suzan, Koen, Bas], 
'ASWR': [105, 170, 120, 101]]}

如您所见,它们都包含Date和About,但其余部分是不同的。

现在我想得到这个:

数据帧A(输出)

A = {'Date': ["20-10-2020", "28-10-2020"],
'About': [Sandra, Bas],
'Score': [15,21],
'Hours': [2, 1]}

如您所见,来自Peter和Mare的数据被删除了,因为data和/或about值与数据框B不匹配

我尝试了以下代码

df_A = df_A.loc[~((df_A['Date'].isin(df_B['Date'])))]

然而,我不能同时为日期和大约做这件事。

有人能帮我一下吗?

如果您想使用merge:

>>> df_A.merge(df_B, on=["Date", "About"])
Date   About  Score  Hours  ASWR
0  20-10-2020  Sandra     15      2   105
1  28-10-2020     Bas     21      1   101

最新更新