Групповой цикл для экспорта отдельных файлов по группам - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь сгруппировать фрейм данных по столбцу «state», выполнить вычисления для каждой группы и выполнить экспорт в Excel, чтобы каждый файл был назван для соответствующей группы состояний.Если я распечатываю группы, они выглядят правильно, но я не могу получить файлы, чтобы правильно отображать данные группы.В настоящее время он создает отдельные файлы с правильными именами файлов, но у каждого файла есть полный набор данных, игнорирующий группы.Исходные данные здесь: https://docs.google.com/spreadsheets/d/1-wdmIz_-AILcBqzvpwAFGZfXqhq8oDRrYFVVdkjZ10o/edit?usp=sharing


df = pd.read_excel("ranker_test.xlsx", sheet_name='DATA')

grouped = df.groupby('state')

for group in grouped:
    df.to_excel('test files/ranking_{}.xlsx'.format(group[0]), index=False)

^ Это создает файлы с правильными именами, но каждый файл имеет все состояния.


df = pd.read_excel("ranker_test.xlsx", sheet_name='DATA')

grouped = df.groupby('state')

for group in grouped:
    group.to_frame().to_excel('test files/ranking_{}.xlsx'.format(group[0]), index=False)

^ Попытка преобразовать его в кадр данных с группой.to_frame (). to_excel приводит к этой ошибке: AttributeError: у объекта 'tuple' нет атрибута 'to_frame'

Как преобразовать группы в кадры данных, которые будут храниться в каждом файле?

1 Ответ

1 голос
/ 06 июня 2019

Похоже, вы пропустили параметр при распаковке сгруппированных значений.Сгруппированные значения представляют собой список касаний в следующем формате (group_index, group_dataframe).Итак, чтобы правильно выполнить итерацию, вы должны сделать что-то вроде этого:

df = pd.read_excel("ranker_test.xlsx", sheet_name='DATA')

grouped = df.groupby('state')

for name, group in grouped:
    group.to_excel('test files/ranking_{}.xlsx'.format(name), index=False)

Обратите внимание на параметр name в цикле for

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...