Экспорт в excel из 2 кадров данных

#python #pandas #export-to-excel #data-export

Вопрос:

У меня есть два фрейма данных, в обоих из которых есть столбец месяцев
, который я хочу экспортировать в excel (создать файлы excel) по df1 месяцам

 dint_month = df1['month'].unique() outputfile = pd.ExcelWriter(str(value) '.xlsx', engine='xlsxwriter')  for value in dint_month:  month1 = df1[df1['month']== value]  month1.to_excel(outputfile, sheet_name='Course', index=False)  outputfile.save()  

Это создает файлы и экспортирует данные в файлы, как я хочу, чтобы это было сделано Теперь у меня есть DF2, где у меня есть столбец за месяц и еженедельные обновления Поэтому я хочу добавить эту еженедельную информацию в отдельные листы в том же файле excel за месяц, который я экспортировал из DF1

Я попробовал еще один цикл for, но он экспортирует все недели во все файлы. Пожалуйста, если вы можете предложить, как я могу этого достичь.

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

1. Вы пробовали изменить sheet_name для другого фрейма данных?

2. Я так и сделал, он экспортирует все недели во всех файлах.

Ответ №1:

Дан df2 фрейм данных, который будет содержать как ссылку на ваши ежемесячные данные, так и на ваши еженедельные данные. Одним из вариантов было бы поступить следующим образом:

 dint_month = df1['month'].unique() for value in dint_month:  outputfile = pd.ExcelWriter(str(value)   '.xlsx', engine='xlsxwriter')  month = df1[df1['month'] == value]  week_data = df2[df2['month'] == value]  month.to_excel(outputfile, sheet_name='course', index=False)  week_data.to_excel(outputfile, sheet_name='course_weeks', index=False)  outputfile.save()  

Обратите внимание, что происходит несколько вещей:

Во-первых, строка создания файла вывода была перемещена в цикле, поскольку она зависела от вашей value переменной.

 outputfile = pd.ExcelWriter(str(value)   '.xlsx', engine='xlsxwriter')  

Затем мы фильтруем данные за неделю по month столбцу, идентичному вашему первому кадру данных. (учитывая, что он там есть).

 week_data = df2[df2['month'] == value]  

Наконец, мы выводим эти данные на другой лист, изменив имя листа в том же выходном файле.

 week_data.to_excel(outputfile, sheet_name='course_weeks', index=False)  

Эта настройка работает в сценарии, где DF2 также есть столбец «месяц». Если это не так, вам также придется добавить столбец месяца во второй кадр данных или переименовать month его в ваше df2[df2['month'] == value] фактическое имя столбца.