Разделить Pandas Dataframe на несколько листов Excel на основе значения индекса в Dataframe - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть этот набор данных:

Dataset

Имеется столбец «Продукт» со значениями «Газ», «Нефть» и «Вода» , Я хочу записать этот фрейм данных в одну рабочую книгу Excel с тремя рабочими листами с данными «Газ», «Нефть» и «Вода» на этих трех рабочих листах.

Я пытался:

I have tried variations of:

и продолжаю получать ошибку типа. Любая помощь приветствуется.

enter image description here

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

IIU C,

Вы можете группировать по продуктам и назначать его в качестве имени листа, одновременно назначая данные в сет на основе агрегации.

writer = pd.ExcelWriter('Report.xlsx')

for group, data in result2.groupby('Product'):
    data.to_excel(writer,group)
writer.save()
0 голосов
/ 19 февраля 2020

Это должно работать. Попробуйте применить этот пример к своим потребностям:

import pandas as pd

data = pd.read_excel('test.xlsx', index_col = 0)    

Gas = data.loc['Gas']  # look for index Gas
Oil = data.loc['Oil']  # look for index Oil

writer = pd.ExcelWriter("Test.xlsx", engine = 'xlsxwriter')
Gas.to_excel(writer, sheet_name = 'Gas')
Oil.to_excel(writer, sheet_name = 'Oil')
writer.save()
...