Python 熊猫清理

Python 熊猫清理,python,pandas,data-cleaning,Python,Pandas,Data Cleaning,我有一个这种格式的excel文件,我正在尝试用Pandas读取并清理它: 我用read_excel读取了文件,并从第7行开始创建了一个多索引级别[201320162017…] df= pd.read_excel(PATH_CY_TABLE, header= [7,8,9]) 这是它的读入方式: 理想情况下,我希望清理后看起来像这样: 我可以按照什么步骤获得这种格式? 我尝试过的两件事是: 1.删除多索引的级别1:其中列名称显示为“未命名…” df.columns= df.col

我有一个这种格式的excel文件,我正在尝试用Pandas读取并清理它:

我用read_excel读取了文件,并从第7行开始创建了一个多索引级别[201320162017…]

    df= pd.read_excel(PATH_CY_TABLE, header= [7,8,9])
这是它的读入方式:

理想情况下,我希望清理后看起来像这样:

我可以按照什么步骤获得这种格式? 我尝试过的两件事是: 1.删除多索引的级别1:其中列名称显示为“未命名…”

    df.columns= df.columns.get_level_values(1)
这给了我一个错误:索引器错误:级别太多:索引只有1个级别,而不是2个级别

堆叠列索引:

df.stack()
这给了我一个错误:“str”和“int”实例之间不支持“>”

我试过这个:

df.columns=df.columns.get_level_values(0)
这给了我一级多重指数[2013、2013、2013、20162016016…]。但是我希望输出df在这里有两个级别的索引:级别0和级别3


作为第一步,我希望删除“未命名…”列名称。我曾尝试将df作为输出而不是图片发布,但不确定如何以正确的方式进行发布-当我从jupyter笔记本复制粘贴时,它们粘贴得一团糟。我对在这里发帖很陌生,所以我仍然在努力

我仍然无法找到更好的方式发布我的输出,但我找到了一种方法将文件清理到所需的输出:

我将多级索引级别0切片,以匹配我想要的2017年

    df1= df
    df1= df1.iloc[:, df1.columns.get_level_values(0)== 2017]
输出:


有可复制的数据示例和一些您尝试过的代码将有助于您获得帮助。请将一个小样本df和一个预期df作为textno图像发布,并简要说明逻辑。Thanksdropnahow='all'起作用了吗?我曾尝试将df作为输出而不是图片发布,但不确定如何以正确的方式进行发布-当我从jupyter笔记本复制粘贴时,它们粘贴得一团糟。我对在这里发帖很陌生,所以我仍然在努力。谢谢
                                                     Number      MOE1 (±)  Rate  
    Total..........................................…  323156.0    123.0     X   
    NaN                                                    NaN      NaN   NaN   
    Any health plan……………….……...…                      294613.0    662.0  91.2   
    NaN                                                    NaN      NaN   NaN   
   .Any private plan2,3………………………                     217007.0   1158.0  67.2