簡體   English   中英

Pandas:使用其他數據框列映射一列值

[英]Pandas : Mapping one column values using other dataframe column

我有兩個如上所述的數據框

我想在第二個表中創建一個與特征 A 的值相關的附加特征 (Col_to_create)。

表 2 有超過 800 000 個樣本,所以我要求更快的方法來做到這一點。

第一張表:

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

您可以使用方法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

一種可能的方法是您可以在數據集的新列上應用該函數:

如果您的數據集是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM