Python 在Pandas中通过查找进行货币转换

Python 在Pandas中通过查找进行货币转换,python,pandas,lambda,vectorization,Python,Pandas,Lambda,Vectorization,在数据框中,我有价格、货币和到基础货币的转换率 价格|货币|英镑|欧元|加元 我可以通过查找转换率将价格转换为基础货币 目前我使用lambda函数,但是对于大数据来说性能非常低 df['usd']=df.apply(lambda行:行['price']/行[order.currency],axis=1) 矢量化或改进这种查找函数的最佳方法是什么?谢谢 我找到了一个更快的解决方案 df['fx_rate']=df.lookup(df.index,df['currency']) df['usd']

在数据框中,我有价格、货币和到基础货币的转换率

价格|货币|英镑|欧元|加元

我可以通过查找转换率将价格转换为基础货币

目前我使用lambda函数,但是对于大数据来说性能非常低

df['usd']=df.apply(lambda行:行['price']/行[order.currency],axis=1)

矢量化或改进这种查找函数的最佳方法是什么?谢谢

我找到了一个更快的解决方案

df['fx_rate']=df.lookup(df.index,df['currency'])
df['usd']=df['price']/df['fx_rate']

我找到了一个更快的解决方案

df['fx_rate']=df.lookup(df.index,df['currency'])
df['usd']=df['price']/df['fx_rate']

的确如此。像
div
这样的算术运算可以矢量化,以避免行
apply
循环。另一种功能形式:
df['usd']=df['price'].div(df['fx\U rate'])
`确实如此。像
div
这样的算术运算可以矢量化,以避免行
apply
循环。替代功能形式:
df['usd']=df['price'].div(df['fx\U rate'])
`