【问题标题】:Create new dataframe from similar values in two columns from two data frames从两个数据帧的两列中的相似值创建新数据帧
【发布时间】:2021-09-08 15:38:38
【问题描述】:

我有两个数据框(数据框 A 和 B)。两个数据框都包含“数据”和“关于”列,但其他列不同。

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

所以,例如:

数据框 A

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]}

数据框 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'])))]

但是,我不能同时为 date 和 about 执行此操作。

有人可以帮帮我吗?

【问题讨论】:

    标签: python dataframe compare


    【解决方案1】:

    IIUC,你要使用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
    

    【讨论】:

      猜你喜欢
      • 2020-09-18
      • 2023-01-08
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 1970-01-01
      • 2022-08-12
      • 2023-01-27
      • 2020-12-22
      相关资源
      最近更新 更多