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

时间:2019-02-01 19:03:34

标签: python pandas

我有一个txt文件,其中包含一个errorID列表,以及一个包含所有ID的数据框。我想合并此列表。例如,假设我有一个看起来像这样的数据框(df1):

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

和从txt中读取的错误数据帧(df2),并使用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 个答案:

答案 0 :(得分:3)

有不需要合并。找到iddf1,是不是在df2

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

波浪号(~)取消了您要检查的条件。

答案 1 :(得分:0)

尝试:

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

答案 2 :(得分:0)

这也是另一种方式:

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