将一个数据框的索引映射到另一个数据框的列
Map index of one dataframe to column of another dataframe
我知道有questions类似的但是他们没有回答我的问题,所以请耐心等待。
我有 2 个数据帧 df1 和 df2。
在df1中,Order ID1为索引,Payment列为空
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)的索引,并且 return 空 payment
列中相应的 paid value
。基本上我正在执行查找程序。
我尝试使用地图功能如下:-
df2['Payment'] = df2.index.map(df1.index)
但我收到以下错误:
TypeError: 'Index' object is not callable
更新:如果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
那是因为您正在尝试映射索引。您首先需要创建一个字典,其中键是 df2 的索引,值是使用 dict(zip())
支付的值。然后您可以将其映射到 df1.index
和 return 到您的付款列:
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
我知道有questions类似的但是他们没有回答我的问题,所以请耐心等待。
我有 2 个数据帧 df1 和 df2。
在df1中,Order ID1为索引,Payment列为空
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)的索引,并且 return 空 payment
列中相应的 paid value
。基本上我正在执行查找程序。
我尝试使用地图功能如下:-
df2['Payment'] = df2.index.map(df1.index)
但我收到以下错误:
TypeError: 'Index' object is not callable
更新:如果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
那是因为您正在尝试映射索引。您首先需要创建一个字典,其中键是 df2 的索引,值是使用 dict(zip())
支付的值。然后您可以将其映射到 df1.index
和 return 到您的付款列:
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