我有一个采用这种格式的excel文件,我正在尝试在熊猫中读取并清理它:
我使用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()
这给我一个错误: TypeError:'str'和'int'的实例之间不支持'>'
我尝试过:
df.columns=df.columns.get_level_values(0)
这使我的MultiIndex的第一级别为[2013、2013、2013、2016、2016、2016 ...]。但是我希望输出df在这里具有两个索引级别:0级和3级。
第一步,我要删除“未命名...”列的名称。我试图将df作为输出而不是图片发布,但是不确定如何以正确的方式进行操作-当我从jupyter笔记本复制粘贴时,它们会将所有粘贴都弄乱了。我是在这里发布问题的新手,所以仍然可以解决我的问题。
答案 0 :(得分: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