Индикатор выполнения обновляется с указанием длины списка

#python-3.x #progress-bar #tqdm

Вопрос:

Я использую tqdm для индикатора выполнения. Вот пример кода

 from tqdm import tqdm
import numpy as np
import pandas as pd

for index_len in tqdm(range(0,len(data_elim))):

    # Doing something here where i get a array of rows which i need to delete

      data_elim = np.delete(data_elim.values,same_residues,0                      
      data_elim = pd.DataFrame(data_elim)
 

Таким образом, в данном случае моя начальная длина составляет 17 миль, но по мере продвижения вперед она будет уменьшаться и в конечном итоге сведется к нулю. Но в моем индикаторе выполнения он всегда отображается как начальная длина списка. В любом случае, могу ли я изменить это число и в индикаторе выполнения ?

Комментарии:

1. Вы использовали свой код с меньшим набором данных? если общее количество строк составляет 17 млн, 1% индикатора выполнения изменится после удаления 170 тыс. строк (при условии, что индикатор обновляется каждые 1%). Может быть, прошло недостаточно времени, чтобы это произошло?

Ответ №1:

Без запуска кода кажется, что вы могли бы переписать это, чтобы использовать tqdm «ручной» режим, чтобы быть более явным:

 total_count = len(data_elim)
with tqdm(total=total_count) as progress:
  # ... do stuff, yielding `new_data`; or, calculate rows_deleted differently
  rows_deleted = total_count - len(new_data)
  progress.update(rows_deleted)