我有兩個不同大小的資料框,我正在嘗試根據另一個公共列中的匹配值從兩個資料框中找到的公共列中添加值。我的第一個資料框如下所示:
df1
ID name region earnings
101 Joseph A 100
102 Adam A 200
103 Clint C 150
104 Mark C 60
105 Michael A 0
df2 看起來像這樣
ID earnings
101 20
103 40
105 60
我的預期結果是
ID name region earnings
101 Joseph A 120
102 Adam A 200
103 Clint C 190
104 Mark C 60
105 Michael A 60
請問我該怎么做?我的第一個想法是遍歷每一行,但后來我讀到不鼓勵這樣做,因為它的性能很差。
uj5u.com熱心網友回復:
您可以使用map set_index:fillna
df1['earnings'] = df1['ID'].map(df2.set_index('ID')['earnings']).fillna(0).astype(int)
輸出:
>>> df1
ID name region earnings
0 101 Joseph A 120
1 102 Adam A 200
2 103 Clint C 190
3 104 Mark C 60
4 105 Michael A 60
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/443077.html
上一篇:帶有手動標簽和排序的Pandasvalue_counts
下一篇:WARNING:tensorflow:Model是用形狀(4,112,112,3)構造的輸入...,但它是在形狀不兼容的輸入上呼叫的((None,112)
