基于python pandas中其他列的值创建新列

2024-05-16 03:29:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据框,其中一列显示货币,另一列显示价格。我想创建一个新的列,根据其他两列的值将价格标准化为美元。

例如

  currency   price
  SGD        100
  USD        80
  EUR        75

新列的条件与

如果货币=新加坡元: 价格=价格/1.37等

所以最后看起来

  currency   price   new_price
  SGD        100     72.99
  USD        80      80
  EUR        75      65.22

Tags: 数据pandasnew货币价格eur条件price
1条回答
网友
1楼 · 发布于 2024-05-16 03:29:05

您可以创建一个包含所有货币转换的字典,然后将price列除以货币列mapped到字典中。

df = pd.DataFrame({'currency': ['SGD', 'USD', 'EUR'], 
                   'price': [100, 80, 75]})
to_usd = {'USD': 1.0, 'SGD': 1.37, 'EUR': 1.15}
df['new_price'] = df.price / df.currency.map(to_usd)
print(df)

印刷品:

  currency  price  new_price
0      SGD    100  72.992701
1      USD     80  80.000000
2      EUR     75  65.217391

相关问题 更多 >