我知道有questions与此类似,但他们没有回答我的问题,所以请耐心等待。
我有 2 个数据框 df1 和 df2。
在 df1 中,订单 ID1 为索引,付款列为空。
print(df1)
Order ID1 Sale Price Payment
OD1 45
OD2 55
OD3 56
在 df2 中,订单 ID2 是索引。
print(df2)
Order ID2 paid value
OD1 44
OD3 41
OD2 33
我正在尝试将 df1(订单 ID1)的索引映射到 df2(订单 ID2)的索引,并在空的付款
列中返回相应的付费值
。基本上我正在执行一个查找过程。
我尝试使用 map 功能如下:-
df2['Payment'] = df2.index.map(df1.index)
但我收到以下错误:
TypeError: 'Index' object is not callable
最佳答案
那是因为您正在尝试映射索引。您首先需要使用 dict(zip()) 创建一个字典,其中键是 df2 的索引,值是付费值。然后您可以将其映射到 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
关于python - 将一个数据帧的索引映射到另一个数据帧的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70460010/