我有一个这种格式的excel文件,我试图在Pandas中阅读并清理它:
我在read_excel文件中读到并从第7行开始创建了一个多索引级别([2013,2016,2017 ...]
df= pd.read_excel(PATH_CY_TABLE, header= [7,8,9])
这就是它的内容:
理想情况下,我想清理看起来像这样:
我可以采取哪些步骤来获得这种格式?我尝试过的一些事情是:1。删除多索引的第1级:列名称显示为“未命名...”
df.columns= df.columns.get_level_values(1)
这给了我一个错误:IndexError:太多级别:索引只有1级,而不是2级
df.stack()
这给了我一个错误:在'str'和'int'的实例之间不支持TypeError:'>'
df.columns=df.columns.get_level_values(0)
这给了我作为[2013,2013,2013,2016,2016,2016 ...]的第一级MultiIndex。但我希望输出df在这里有两个级别的索引:级别0和级别3。
作为第一步,我希望删除“未命名...”列名称。我试图将df作为输出而不是图片发布,但不确定如何以正确的方式执行它们 - 当我从jupyter笔记本中复制粘贴时,它们会粘贴所有混乱。我在这里发布问题我很陌生......所以我仍然在努力。
我还没有找到更好的方法来发布我的输出,但我找到了一种方法来清理文件到所需的输出:
我将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