【发布时间】:2021-12-19 03:29:22
【问题描述】:
如何在 Pandas 数据框中一次迭代 100 行?一次应用 lambda 函数时,forex_python 包似乎出错了。
这是我尝试过但似乎不起作用的方法:
import pandas as pd
from forex_python.converter import CurrencyRates
c = CurrencyRates()
row_processed = 0
for row in df.iterrows():
try:
df['USD_rate'] = df.apply(lambda x: c.get_rate(x['Currency'],'USD', x['Date']), axis = 1)
row_processed += 1
if row_processed == 100:
row_processed = 0
time.sleep(5)
except:
continue
【问题讨论】:
-
迭代数据框是您最不想做的事情。也许提供一个你所拥有的和预期输出的样本,看看论坛是否可以提出替代方案
-
是下载配额限制了你吗?例如,无论在后台使用什么服务来检索数据,都对请求量不满意?在这种情况下不需要速度(因此需要睡眠呼叫)
-
@Riley 是的 - 请求的数量似乎导致它出错。是的 - 这就是睡眠呼叫存在的原因。
标签: python python-3.x pandas dataframe