我有一个看起来像这样的数据框
Currency Amount Country
EUR 12.06 France
USD 10.23 USA
INR 122.17 India
INR 422.01 India
USD 8.06 USA
我有一个函数,它将采用货币名称,即“货币”列,并使用“金额”转换为通用货币
def convert_an_amount(amount,curr,target_currency):
if curr in c.currencies:
return c.convert(amount, curr , target_currency)
return np.nan
我想要做的是创建数据框的列
def convert_to_common(amount,curr_name,target_curr):
currency_coverted_variable -
... required code ...
我想要以下数据框
Currency Amount Country Common Currency(EUR)
EUR 12.06 France x
USD 10.23 USA x
INR 122.17 India x
INR 422.01 India x
USD 8.06 USA x
有什么办法可以编码此功能?我正在使用一个库,该库将转换函数中的值,但是如何促进数据框的创建?
c.convert的条件是一次只能转换一个值!
您可以使用以下DataFrame.apply
功能:
df['new'] = df.apply(lambda x: convert_to_common(x['Amount'], x['Currency'], 'EUR'), axis=1)
我认为您可以为创建字典rate
,然后在需要更好的性能时使用Series.map
和Amount
:
eur = {'EUR':1, 'USD':2, 'INR':3}
df['new'] = df['Currency'].map(eur) * df['Amount']
print (df)
Currency Amount Country new
0 EUR 12.06 France 12.06
1 USD 10.23 USA 20.46
2 INR 122.17 India 366.51
3 INR 422.01 India 1266.03
4 USD 8.06 USA 16.12
详细说明:
print (df['Currency'].map(d))
0 1
1 2
2 3
3 3
4 2
Name: Currency, dtype: int64
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句