熊猫:使用其他数据框列映射一个列值

时间:2019-12-04 16:47:12

标签: python pandas

我有两个如上所述的数据帧

我想在第二个表中创建一个与功能A的值有关的附加功能(Col_to_create)。

表2有80万个样本,因此我希望有一个更快的方法。

第一张桌子:

a      b    
1     100
2     400
3     500

第二张表:

id   Refer_to_A     Col_to_create
0        3               500
1        1               100
2        3               500
3        2               400
4        1               100

2 个答案:

答案 0 :(得分:1)

一种可能的方法是将函数应用于数据集的新列:

如果您的数据集是:

dataframe_a = pd.DataFrame({'a': [1,2,3], 'b': [100,400,500]})
dataframe_b = pd.DataFrame({'Refer_to_A': [3,1,3,2,1]})

您可以尝试:

dataframe_b['Col_to_create'] = dataframe_b['Refer_to_A'].apply(lambda col: dataframe_a['b'][col-1])

输出:

   Refer_to_A  Col_to_create
0           3            500
1           1            100
2           3            500
3           2            400
4           1            100

答案 1 :(得分:1)

您可以使用方法map

df2['Col_to_create'] = df2['Refer_to_A'].map(df1.set_index('a')['b'])

输出:

    Refer_to_A  Col_to_create
id                           
0            3            500
1            1            100
2            3            500
3            2            400
4            1            100