Панды: формат xlsx с несколькими иерархическими данными и агрегатами - PullRequest
0 голосов
/ 26 октября 2018

Вот данные, которые у меня есть:

data = {
    'Serial Numbers': (u'1234567', u'9876543', u'9876543', u'1478523', u'1478523'), 
    'Name': (u'Foo', u'Bar', u'Bar', u'Bar', u'Bar'), 
    'License Type': (u'Standard', u'Standard', u'Extra', u'Standard', u'Extra'), 
    'Country': (None, None, None, None, None), 
    'Id': (120L, 5050L, 5050L, 5050L, 5050L), 
    'Expiration Date': (u'09/11/2018 00:00:00', u'09/11/2018 00:00:00', u'06/03/2019 00:00:00', u'22/02/2019 00:00:00', u'22/01/2019 00:00:00'), 
    'RefId': (u'ACME', u'ACME', u'ACME', u'ACME', u'ACME')
}

Вот как я в конечном итоге хочу, чтобы это выглядело: Expectations Я читал разные вопросы, видел разные примеры, онине совсем подходит моей потребностиДо сих пор я придумал это:

import pandas as pd

df = pd.DataFrame(data)
index = ['Id', 'RefId', 'Name', 'Country', 'Serial Numbers', 'Expiration Date', 'License Type']
df = df.set_index(index)
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', startrow=0) 
writer.save()

Но я получаю такой результат:

Reality

Как видите,столбцы имеют неоптимальную ширину, все выделено жирным шрифтом, и я не знаю, как получить промежуточные итоги и итоги в этом случае, потому что, похоже, из-за того, как я применил индексы, единственные данные, которые он интерпретирует как данные, это License Type, остальное кажется чем-то другим, потому что его нет в коллекции df.columns.Чтобы сделать этот вопрос более совместимым с правилами SO, в центре внимания этого вопроса будет

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

...