代码之家  ›  专栏  ›  技术社区  ›  sgerbhctim

从txt读取数据帧后如何合并数据帧

  •  1
  • sgerbhctim  · 技术社区  · 5 年前

    我有一个 txt 包含错误ID列表的文件,以及包含所有ID的数据帧。。我想合并这个列表。例如,假设我有一个数据帧(df1),如下所示:

    id  value
    a1  foo
    a2  fo
    a3  fi
    a4  fum
    a5  fe
    

    to_csv ,我明白了

    error_id
    a1
    a4
    a5
    

    我想运行一些类似于:

    merged = df1.merge(df2, left_on='id', right_on='error_id')
    

    为了实现以下方面的最终结果:

    id  value
    a2  fo
    a3  fi
    
    3 回复  |  直到 5 年前
        1
  •  3
  •   roganjosh    5 年前

    没有必要合并。找到 id 在里面 df1 df2 :

    df1 = df1[~df1['id'].isin(df2['error_id'])]
    

    ~

        2
  •  0
  •   Scott Boston    5 年前

    尝试:

    df1.merge(df2, left_on='id', right_on='error_id', how='outer', indicator=True)\
       .query('_merge == "left_only"')[['id','value']]
    

    输出:

       id value
    1  a2    fo
    2  a3    fi
    
        3
  •  0
  •   gold_cy    5 年前

    df.where(
        df.merge(df1, left_on='id', right_on='error_id', how='left')
          .error_id
          .isnull())
          .dropna()
    
       id value
    1  a2    fo
    2  a3    fi