如何在 pandas iterrows for 循环中集成进度条

问题描述 投票:0回答:2

我承认在 pandas 中使用 iterrows 是不好的做法,但这就是我正在处理的以前项目剩余的内容......

我正在使用像这样的 for 循环来迭代 pandas 数据框以进行一些数据操作(在移动设备上,请原谅我糟糕的格式)-

for index, row in df_temp.iterrows
# do stuff

我一直想在这个循环周围添加一个进度条功能来跟踪它的进度(考虑到它消耗的数据量)。我发现了类似 tqdm 的东西,但它的用例相当简单,有没有一种巧妙的方法来重构我的 for 循环,以便可以插入进度条功能?

尝试简单地获取循环的计数器并在每次迭代期间跟踪它,但这似乎违反直觉..

python pandas dataframe for-loop progress-bar
2个回答
2
投票
import numpy as np
import pandas as pd
from tqdm import tqdm


df = pd.DataFrame(np.random.random(10_000,))

for index, row in tqdm(df.iterrows()):
    # do stuff
    row


0
投票

iterrows
是一个迭代器,因此 tqdm 不知道它的长度。您可以将长度值传递给
total
参数,如下 -

for _, row in tqdm(df.iterrows(), total=df.shape[0]):

然后你就会真正看到进度条。

© www.soinside.com 2019 - 2024. All rights reserved.