使用Python Pandas基于其他列的值创建新列

4
我可以帮你翻译成中文。这段内容是关于使用Python的pandas库处理数据的。其中一列显示货币,另一列显示价格,作者想要创建一个新的列,将价格统一转换成美元,基于其他两列的值进行计算。例如:
  currency   price
  SGD        100
  USD        80
  EUR        75

新的列将具有类似的条件,如下所示:
如果货币 == SGD: 价格 = 价格 / 1.37 等等。
因此最终看起来会像这样:
  currency   price   new_price
  SGD        100     72.99
  USD        80      80
  EUR        75      65.22
1个回答

3
你可以创建一个包含所有货币转换的字典,然后将货币列映射到该字典并将其除以价格列。
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接