将TQDM进度条与Pandas配合使用

8oomwypt  于 2022-12-21  发布在  其他
关注(0)|答案(5)|浏览(194)

在使用Pandas导入和索引大型数据集时,是否可以使用TQDM进度条?
下面是一个我正在导入、索引和使用to_datetime的5分钟数据的例子。这需要一段时间,如果能看到进度条就好了。

#Import csv files into a Pandas dataframes and convert to Pandas datetime and set to index

eurusd_ask = pd.read_csv('EURUSD_Candlestick_5_m_ASK_01.01.2012-05.08.2017.csv')
eurusd_ask.index = pd.to_datetime(eurusd_ask.pop('Gmt time'))
lyr7nygr

lyr7nygr1#

通过形状求长度

for index, row in tqdm(df.iterrows(), total=df.shape[0]):
   print("index",index)
   print("row",row)
8yoxcaq7

8yoxcaq72#

with tqdm(total=Df.shape[0]) as pbar:    
    for index, row in Df.iterrows():
        pbar.update(1)
        ...
t5zmwmid

t5zmwmid3#

对于tqdm〉4.24,有一个变通办法https://github.com/tqdm/tqdm#pandas-integration:

from tqdm import tqdm
        
# Register `pandas.progress_apply` and `pandas.Series.map_apply` with `tqdm`
# (can use `tqdm_gui`, `tqdm_notebook`, optional kwargs, etc.)
tqdm.pandas(desc="my bar!")
eurusd_ask['t_stamp'] = eurusd_ask['Gmt time'].progress_apply(lambda x: pd.Timestamp)
eurusd_ask.set_index(['t_stamp'], inplace=True)
u1ehiz5o

u1ehiz5o4#

您可以通过正常阅读文件来逐行填充Pandas Dataframe ,只需将每一行作为新行添加到 Dataframe 中,尽管这比使用Pandas自己的读取方法要慢一些。

wqlqzqxt

wqlqzqxt5#

我发现它很容易实现,你只需要加上total参数。

import pandas as pd
df = pd.read_excel(PATH_TO_FILE)

for index, row in tqdm(df.iterrows(),  total=df.shape[0], desc=f'Reading DF'):
        print(row(['df_colum'])

相关问题