Создать таблицу Excel для каждого уникального значения в столбце Dataframe Python - PullRequest
0 голосов
/ 18 марта 2019

У меня ОЧЕНЬ большой CSV-файл с 250 000+ записями, для анализа которых в Excel требуется некоторое время, поэтому я хотел разделить его на несколько листов на основе определенного вычисляемого столбца, который я создал в пандах.

Конкретный столбец называется «Период» и представляет собой строковую переменную в моем фрейме данных в форме MMM_YYYY (например, Jan_2016, Feb_2016 и т. Д.)

Я пытаюсь создать что-то, что будет иметь рабочую книгу (назовем ее data_by_month.xlsx), имеющую рабочую таблицу для каждого уникального периода в столбце данных периода "Период", со всеми соответствующими строками, записанными в соответствующую рабочую таблицу.

Это логика, которую я попробовал:

for row in df:
    for period in unique_periods:
        if row[38] == period:
            with pd.ExcelWriter("data_by_month.xslx") as writer:
                df.to_excel(writer, sheet_name = period)

Идея, лежащая в основе этого, заключается в том, чтобы для каждой строки в кадре данных проходить каждый период в списке уникальных периодов, и если строка [38], которая является индексом периода, равна периоду, напишите это в рабочую книгу data_by_month.xlsx в конкретную рабочую таблицу.

Я знаю, что мой код сейчас совершенно неверен, но это общая логика, которую я пытался реализовать. Я почти уверен, что неправильно ссылаюсь на расположение столбца «Период» в кадре данных, поскольку он продолжает говорить, что он находится вне диапазона. Любой совет будет приветствоваться!

Большое спасибо!

1 Ответ

1 голос
/ 18 марта 2019

Этого можно достичь, используя groupby в пандах. Например ...

with pd.ExcelWriter("data_by_month.xlsx") as writer:
    for period, data in df.groupby('Period'):
        data.to_excel(writer, sheet_name = period)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...