Альтернатива нарезке и пониманию списка

Я ищу, чтобы ускорить мой код. Я попытался повторить мой код в следующем:

Я начинаю с чтения определенных файлов CSV из папки и сохраняю данные в формате dict:

Все является частью методов внутри классов.

csv_dir: Folder with all the CSV files
list: List of which CSV files from the above folder to read

data = {}
for s in list:
    data[s] = pd.io.parsers.read_csv(
                        os.path.join(csv_dir, '%s.csv' % s),
                        header=0, index_col=0, parse_dates=True, date_parser=dateparse,
                        names=names

Затем я переиндексирую и создаю генератор

comb_index: Combined index made previously in the code
reindexMethod = None

for s in list:
            data[s] = data[s].\
                reindex(index=comb_index, method=reindexMethod)
            data[s] = data[s].iterrows()

Затем я перебираю все записи, где я делаю следующее в каждой итерации:

  • Получить новое наблюдение, используя урожай
  • Сохранить новое наблюдение в списке вместе со всеми ранее полученными наблюдениями
  • Вызовите функцию, которая:
    • Получить последние N записей из приведенного выше списка, используя get_latest_data (определяется ниже вместе с helpmethod)
    • Рассчитать материал

Определения кода:

self (part of the same class as the rest of the code)
x: which file to retrieve the latest N datapoints from
N: Number of datapoints to retrieve

def get_latest_data(x, val_type, N=1):
    try:
        data_list = get_latest_entries(x, N)
    except KeyError:
        print("Not available.")
        raise
    else:
        return np.array([getattr(b[1], val_type) for b in data_list])

с помощью метода

latest_data: Dict with all previously looped through data for each CSV file 

def get_latest_entries(x, N=1):
    try:
        bars_list = latest_data[x]
    except KeyError:
        print("Not available.")
        raise
    else:
        return bars_list[-N:]

Мой профилировщик говорит, что проблема заключается в понимании списка, но я не знаю лучшей альтернативы.

0 ответов

Другие вопросы по тегам