首页 文章

Pandas到Excel(合并 Headers 栏)

提问于
浏览
3

我想将我的df转换为Excel工作表,但也想添加一个 Headers 列来对所有列进行分类 .

复制:

import pandas as pd
 # Create a Pandas dataframe from some data.
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Close the Pandas Excel writer and output the Excel file.
writer.save()

1 回答

  • 5

    您可以创建 MultiIndex

    df = pd.DataFrame({
            'A':list('abcdef'),
             'B':[4,5,4,5,5,4],
             'C':[7,8,9,4,2,3],
             'D':[1,3,5,7,1,0],
             'E':[5,3,6,9,2,4],
             'F':list('aaabbb')
    })
    

    指定具有开始和结束列名称的新级别名称:

    L = [('OBS','A','C'), ('FIN', 'D','F')]
    

    然后在列表理解中为MultiIndex.from_tuples创建 tuples

    cols = [(new, c) for new, start, end in L for c in df.loc[:, start:end].columns]
    
    print (cols)
    [('OBS', 'A'), ('OBS', 'B'), ('OBS', 'C'), ('FIN', 'D'), ('FIN', 'E'), ('FIN', 'F')]
    
    df.columns = pd.MultiIndex.from_tuples(cols)
    print (df)
      OBS       FIN      
        A  B  C   D  E  F
    0   a  4  7   1  5  a
    1   b  5  8   3  3  a
    2   c  4  9   5  6  a
    3   d  5  4   7  9  b
    4   e  5  2   1  2  b
    5   f  4  3   0  4  b
    

相关问题