简体   繁体   English

如何展平 pandas 中的多级列

[英]How to flatten a multi-level columns in pandas

在此处输入图像描述

Please see the data in excel above.请看上面excel中的数据。 When use df.columns this is the printout:使用 df.columns 时,这是打印输出:

Index(['Country of Citizenship', '2015', 'Unnamed: 2', 'Unnamed: 3',
   'Unnamed: 4', 'Unnamed: 5', 'Unnamed: 6', 'Unnamed: 7', 'Unnamed: 8',
   'Unnamed: 9',
   ...
   'Unnamed: 108', 'Unnamed: 109', 'Unnamed: 110', 'Unnamed: 111',
   'Unnamed: 112', 'Unnamed: 113', 'Unnamed: 114', 'Unnamed: 115',
   'Unnamed: 116', 'Unnamed: 117'],
  dtype='object', length=118)

I want to turn this multi-level column into a single level column with column name changed as 2015-Jan.我想将此多级列转换为单级列,列名更改为 2015-Jan。 Thanks a lot for help非常感谢您的帮助

You can read a excel file into a pandas dataframe with multi-indexes, like with the following example:您可以使用多索引将 excel 文件读取到 pandas dataframe 中,例如以下示例:

import pandas as pd

df = pd.read_excel('your_file.xlsx', 
                   header=[0,1,2], 
                   index_col=[0])

If you want to know how to navigate and use multi-indexes i recommend: this如果您想知道如何导航和使用我推荐的多索引: this

Alternatively there are also alot of Stackoverflow questions regarding Multiindex.或者,还有很多关于 Multiindex 的 Stackoverflow 问题。

Its hard to show without example data, but basically to flatten the multiindex you can do this:没有示例数据很难显示,但基本上为了展平多索引,您可以这样做:

df.columns = df.columns.to_flat_index()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM