熊猫:使用多个层次结构数据和聚合来格式化xlsx

时间:2018-10-26 17:36:00

标签: python pandas xlsxwriter

这是我拥有的数据:

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文件,以便存在合并的单元格,正确的列顺序,还可以对其进行格式设置并生成小计和总计?

0 个答案:

没有答案