[英]Convert prices with daily rate in pandas
我目前正在尝试用不同货币( pricecurrency
)的价格( pricevalue
)规范化 DataFrame(~600k 行),以便每一行都有欧元的价格。
我想将它们转换为从列date
获取的每日费率。
我当前的“解决方案”(使用在 PyPI 上找到的CurrencyConverter package)如下所示:
from currency_converter import CurrencyConverter
c = CurrencyConverter(fallback_on_missing_rate=True,fallback_on_missing_rate_method="last_known")
def convert_currency(row):
return c.convert(row["pricevalue"], row["pricecurrency"],row["date"])
df["converted_eur"] = df.apply(lambda x: convert_currency(x),axis=1)
然而,这个解决方案需要很长时间才能运行。
有没有更快的方法来实现这一点? 任何帮助表示赞赏:)
这么说听起来很奇怪,但不幸的是你没有做错任何事!
货币插值代码正在做你需要它做的事情,而不是别的。 在您的代码中,您所做的一切都是正确的。 这意味着您无法通过快速修复来获得性能。 你有一个双 lambda 你只需要一个,但这不会有太大的区别:
IE
df["converted_eur"] = df.apply(lambda x: convert_currency(x),axis=1)
应该
df["converted_eur"] = df.apply(convert_currency, axis=1)
首先要做的是通过添加一些 UI 来了解此处理实际需要多长时间:
from tqdm import tqdm
df["converted_eur"] = df.progress_apply(convert_currency, axis=1)
一旦您知道这项工作实际需要多长时间,请按顺序尝试这些:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.