我知道有問題,與此類似,但他們不回答我的問題,所以敬請包涵。
我有 2 個資料框 df1 和 df2。
在 df1 中,Order ID1 是索引,而 Payment 列為空。
print(df1)
Order ID1 Sale Price Payment
OD1 45
OD2 55
OD3 56
在 df2 中,Order ID2 是索引。
print(df2)
Order ID2 paid value
OD1 44
OD3 41
OD2 33
我試圖將 df1(訂單 ID1)的索引映射到 df2(訂單 ID2)的索引,并paid value在空payment列中回傳相應的值。基本上我正在執行查找程式。
我嘗試使用 map 功能如下:-
df2['Payment'] = df2.index.map(df1.index)
但我收到以下錯誤:
TypeError: 'Index' object is not callable
uj5u.com熱心網友回復:
那是因為您正在嘗試映射索引。您首先需要創建一個字典,其中鍵是 df2 的索引,值是使用dict(zip()). 然后您可以將其映射df1.index并將其回傳到您的付款列中:
df1['payment'] = df1.index.map(dict(zip(df2.index,df2['paid value'])))
Sale Price payment
Order ID1
OD1 45 44
OD2 55 33
OD3 56 41
uj5u.com熱心網友回復:
更新:如果Order IDX已經是您的 2 個資料幀的索引,請使用簡單的賦值:
df1['Payment'] = df2['paid value']
print(df1)
# Output:
Sale Price Payment
Order ID1
OD1 45 44
OD2 55 33
OD3 56 41
舊答案
df1['Payment'] = df1['Order ID1'].map(df2.set_index('Order ID2').squeeze())
print(df1)
# Output:
Order ID1 Sale Price Payment
0 OD1 45 44
1 OD2 55 33
2 OD3 56 41
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392732.html
上一篇:Series[]和.loc[]有時會回傳單個值,有時會意外回傳包含相同值的單個元素Series
下一篇:加入一個DataFrame串列
