熊猫清理

问题描述 投票:-4回答:1

我有一个这种格式的excel文件,我试图在Pandas中阅读并清理它:

I have an excel file in this format and I am trying to read it in Pandas and clean it up

我在read_excel文件中读到并从第7行开始创建了一个多索引级别([2013,2016,2017 ...]

    df= pd.read_excel(PATH_CY_TABLE, header= [7,8,9])

这就是它的内容:

This is how it read in:

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

Ideally, I want to clean up to look something like this:

我可以采取哪些步骤来获得这种格式?我尝试过的一些事情是:1。删除多索引的第1级:列名称显示为“未命名...”

    df.columns= df.columns.get_level_values(1)

这给了我一个错误:IndexError:太多级别:索引只有1级,而不是2级

  1. 堆叠列索引: df.stack()

这给了我一个错误:在'str'和'int'的实例之间不支持TypeError:'>'

  1. 我试过这个: df.columns=df.columns.get_level_values(0)

这给了我作为[2013,2013,2013,2016,2016,2016 ...]的第一级MultiIndex。但我希望输出df在这里有两个级别的索引:级别0和级别3。

作为第一步,我希望删除“未命名...”列名称。我试图将df作为输出而不是图片发布,但不确定如何以正确的方式执行它们 - 当我从jupyter笔记本中复制粘贴时,它们会粘贴所有混乱。我在这里发布问题我很陌生......所以我仍然在努力。

python pandas data-cleaning
1个回答
0
投票

我还没有找到更好的方法来发布我的输出,但我找到了一种方法来清理文件到所需的输出:

我将MultiLevelIndex级别0切成了我想要的年份(2017)

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

日期:

                                                     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 
© www.soinside.com 2019 - 2024. All rights reserved.