Поиск среднего значения из 5000 различных csv для суммирования в одном списке python

#python #pandas #coding-efficiency

#python #pandas #кодирование-эффективность

Вопрос:

У меня есть папка с примерно 5000 csv с 60 000 строк и 10 столбцов в каждом. Я хочу получить среднее значение каждого csv и добавить его в список. Текущий код ниже:

 mean_list = []
   
for item in train_frags: # train_frags is a variable that holds location of all files
    segment = pd.read_csv(item,dtype = 'Int16')
    mean_list.append(segment.mean())

 

Этот код выполняется уже более 10 минут !!. Пожалуйста, предложите эффективную версию.

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

1. Нет решения, которое не включало бы чтение каждого отдельного байта, и я бы предположил, что у вас узкое место из-за дискового ввода-вывода, а не процессора, поэтому я не думаю, что вы можете многое сделать для оптимизации (кроме предварительной обработки / кэширования, чтобы, если вам нужно это сделатьопять же, вам не нужно каждый раз начинать с нуля). Можете ли вы поместить эту папку на более быстрый диск или, возможно, даже распределить ее по нескольким физическим дискам, чтобы вы могли распараллеливать чтения?

Ответ №1:

Единственное, о чем я могу думать, это то, что вы используете append , что довольно медленно, поэтому, возможно, попробуйте преобразовать его в понимание списка, если это возможно. Единственное, что я могу придумать, это использовать numba (https://numba.pydata.org /), что может помочь повысить производительность и скорость.