[英]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.