我有两个数据框架(数据框架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