pandas 使用字典Map列中的值

gk7wooem  于 2023-01-15  发布在  其他
关注(0)|答案(2)|浏览(169)

我从文件导入了两个 Dataframe
df1输出(样本):
| 国家|货币|代码|
| - ------|- ------|- ------|
| 美国|美元|美元|
| 波多黎各|美元|美元|
| 联合 Realm |英镑|英镑|
| 根西岛|英镑|英镑|
| 日本|日元|日元|
df2输出(样本):
| 指标|原币|
| - ------|- ------|
| 无|美元|
| 1个|英镑|
| 第二章|日元|
| 三个|美元|
| 四个|美元|
| 五个|英镑|
我已经使用以下命令将df1中的两列转换为字典:di = dict(zip(df1['Currency'], df1['Code']))
目前,我正尝试将字典中的值Map到第二个 Dataframe 的"原始货币"列;然而,我所做的尝试要么得到NaN值,要么根本没有变化。
我尝试同时使用.map().replace(),但收效甚微
使用.map()

df2['Original Currency'] = df2['Original Currency'].map(di)

使用.replace()

df2['Original Currency'] = df2['Original Currency'].replace(di)

&

df3 = df2.replace({"Original Currency": di})
7tofc5zh

7tofc5zh1#

您的代码应该可以工作。请尝试以下操作:

df2['Original Currency'] = df2['Original Currency'].map(df1.set_index('Currency')['Code'])
print(df2)

# Output
  Original Currency
0               USD
1               GBP
2               JPY

如果它不起作用,可能是您有一些尾随空格。

hpxqektj

hpxqektj2#

您可以使用apply

df2['Original Currency'] = df2['Original Currency'].apply(lambda i: di[i])

相关问题