【问题标题】:Extract from dataframe rows based on common values between two dataframes根据两个数据帧之间的共同值从数据帧行中提取
【发布时间】:2021-03-20 00:04:07
【问题描述】:

我有一个数据框,我需要从数据框 A 中提取值 Id 并将每一行存储在数据框 B 中的每一行,例如:

对于这两个数据框,我想明确地从数据框 A 中删除具有值 23、50、41 的行值,这些值是 A 和 B 之间的公共列值,并将这些行移动到数据框 C 中。 我试图实现的输出如下:

对于任何代码尝试,除了合并之外我没有做任何事情,但它不会删除列。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    这听起来像是一个索引问题:

    # keep the wanted columns
    df_c = df_a[df_a['Id'].isin(df_b['Id'])]
    
    # remove those in the original dataframe
    df_a = df_a[~df_a['Id'].isin(df_b['Id'])]
    

    【讨论】:

      【解决方案2】:

      使用过滤:

      mask = df_a['Id'].isin(df_b['Id'])
      df_c,df_a = df_a[mask],df_a[~mask]
      

      【讨论】:

        猜你喜欢
        • 2018-04-08
        • 2019-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多