熊猫通过查找其他数据框来填充一个数据框

时间:2020-03-13 15:05:14

标签: python pandas lookup

我有两个数据框:df1和df2

df1 = pd.DataFrame([10,22,30,22,10,60],columns=['Type'])
df2 = pd.DataFrame(["A","B","C","D","E"],columns=['Code'],index=[10,22,30,40,60])

我想在df1中创建一个名为“代码”的新列,并使用df2的匹配索引。 然后,仅当Type> 50时,我才不想查找df2的索引,而是使用Code == B。

所需的输出如下:

   Type Code 
0    10 A
1    22 B
2    30 C
3    22 B
4    10 A
5    60 B

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

让我们做

df1['Code'] = df1.Type.map(df2.Code).mask(df1['Type'].gt(50),'B') # update by anky_91
df1
Out[10]: 
   Type Code
0    10    A
1    22    B
2    30    C
3    22    B
4    10    A
5    60    B

答案 1 :(得分:1)

您可以使用merge

df1['Code'] = df1.merge(df2, left_on='Type', right_index=True)['Code']

它给出:

   Type Code
0    10    A
1    22    B
2    30    C
3    22    B
4    10    A
5    60    E