Last Updated on 2024-08-07 by Clay
Python 是個相當適合做資料處理的語言,其中 pandas 套件更是對於資料處理提供了不少方便的功能與函式。而今天我要紀錄的,就是在 pandas 的 DataFrame 資料結構中,使用 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
- https://stackoverflow.com/questions/47087741/use-tqdm-progress-bar-with-pandas
- https://stackoverflow.com/questions/16476924/how-to-iterate-over-rows-in-a-dataframe-in-pandas