任务的矢量化加快了执行速度,但我无法找到如何测量矢量化任务的进度(如果任务需要很长时间才能完成)。我已经看到tqdm可以完成这项工作,但我想知道是否有可能以更简单的方式完成这项工作。
pandas Dataframe 示例(假设索引为[0...n],每1000行输出一条打印输出消息):
for idx in df.index:
df.loc[idx, 'B'] = a_function(df.loc[idx, 'A'])
if (idx % 1000) == 0:
print(idx)
这将显示进度,但如果df有几百万行,并且a_function()不是普通的,则速度会非常慢。
另一种方法是将操作向量化:
df['B'] = df['A'].apply(lambda x: a_funcion(x))
这可能会运行得更快,但它没有提供任何有关进度的提示。如何获得矢量化任务的状态信息?
1条答案
按热度按时间jpfvwuh41#
tqdm
现在通过progress_apply
方法支持主要的通用pandas.core
结构:它不需要
print
语句就可以显示进度(尽管它可能不适合所有情况)。