Skip to content

[Python] 使用 tqdm 在 pandas iterrows() 迭代時顯示進度條

Last Updated on 2024-08-07 by Clay

Python 是個相當適合做資料處理的語言,其中 pandas 套件更是對於資料處理提供了不少方便的功能與函式。而今天我要紀錄的,就是在 pandasDataFrame 資料結構中,使用 iterrows() 迭代資料時透過 tqdm 套件顯示進度條。


使用方法

在個人目前的測試中,要迭代 Pandas 的 DataFrame 資料結構使用 iterrows() 是比較快的方式,相對於直接用 for 迴圈透過索引取值快許多。

使用方法大致上如下:

for index, row in df.iterrows():
     # your code...


然而,這個方法的問題是無法一眼看出當前進度,只能勉強自己印出 index 跟 DataFrame 的長度去比較當前資料處理的進度。

然而這個方法對於在 Jupyter Notebook 等平台撰寫程式碼來說較為不便,因為印出的區塊有其空間限制,導致我們得想辦法在窄小的區塊中看到進度...... 對我來說,能使用 tqdm 等知名的進度條套件來顯示進度自然是更為方便。

上網一查,其實 tqdm 當然是可以對這種 pandas 的 DataFrame 迭代進行進度條顯示的。說穿了其實很簡單,我們直接給予一個 total 的參數設定總共有多少筆資料即可。

再怎麼說 tqdm 也是歷史悠久的套件,在這種設定與應用方面自然是相當彈性。

所以說,如果要在 pandas 的 DataFrame 上顯示 tqdm 進度條,我們只需要寫成類似以下程式碼:

for index, row in tqdm(df.iterrows(), total=df.shape[0]):
    # your code...


就可以順利顯示資料了。


References


Read More

Tags:

Leave a Reply