【问题标题】:Check a dataframe against another dataframe and return errors对照另一个数据帧检查一个数据帧并返回错误
【发布时间】:2018-10-01 14:29:02
【问题描述】:

我有一个数据框 (df),它看起来像:

ID  Location Score
23    London     A
34   Bristol     C
 2   Swansea     D
67    London     A
32      Bath     D

我有一个名为 valid 的验证数据框,它看起来像:

Main_Location Sub_Location1 Sub_location2
       London       Bristol          Bath

我想返回一个数据框,它可以拾取df 中的任何行(让我们调用数据框error),这些行在valid 数据框中没有位置

所以我的error 数据框看起来像:

ID  Location Score
  2  Swansea     D

由于 Swansea 不在 valid 数据框中,因此该行信息将返回到 error 数据框。

尝试使用没有成功:

error = ~df['Location'].isin(valid)

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以使用valid.values.flatten()查看:

    error = df[~df.Location.isin(valid.values.flatten())]
    

    返回:

       ID Location Score
    2   2  Swansea     D
    

    【讨论】:

      【解决方案2】:

      一种方法是使用T 转置并使用其默认列名'0'

      df['Location'].isin(valid.T[0])
      

      输出

      0     True
      1     True
      2    False
      3     True
      4     True
      

      并将其用作您的索引器

      df[~df['Location'].isin(valid.T[0])]
      
         ID Location Score
      2   2  Swansea     D
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-18
        • 2018-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多