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

时间:2017-07-14 23:18:28

标签: python pandas

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

例如

withCredentials(
    [usernamePassword(
        credentialsId: CREDENTIALS_ID_GIT, 
        passwordVariable: 'GIT_PASSWORD', 
        usernameVariable: 'GIT_USERNAME')]) {
        sh("git fetch --tags https://${GIT_USERNAME}:${GIT_PASSWORD}@${REPO}")
    }

新列的条件类似于

如果货币== SGD:    价格=价格/ 1.37等。

所以最后看起来像

  currency   price
  SGD        100
  USD        80
  EUR        75

1 个答案:

答案 0 :(得分:3)

您可以创建包含所有货币转换的字典,然后将价格列按货币列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