检查数据帧中的值与另一个数据帧,并附加值(如果存在)

时间:2017-05-16 16:09:03

标签: python pandas

我有两个数据帧如下:

DF1
A   B   C
1   2   3
4   5   6
7   8   9

DF2
Match   Values
1       a,d
7       b,c

我想将DF1 ['A']与DF2 ['匹配']匹配,如果值存在,则将DF2 ['值']附加到DF1

So my result will be:
A    B    C    Values
1    2    3    a,d
7    8    9    b,c

现在我可以使用以下代码来匹配值,但它返回一个空数据帧。

df1 = df1[df1['A'].isin(df2['Match'])]

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

您可以通过合并数据框一步完成此操作,而不是进行查找:

pd.merge(df1, df2, how='inner', left_on='A', right_on='Match')

如果您只想要同时显示在how='inner'的记录,如果您想要所有df1的数据,请指定how='left'

如果您只想保留值列:

pd.merge(df1, df2.set_index('Match')['Values'].to_frame(), how='inner', left_on='A', right_index=True)