我有两个数据帧如下:
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'])]
任何帮助都将不胜感激。
答案 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)