#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]
фактическое имя столбца.