Python 熊猫清理
我有一个这种格式的excel文件,我正在尝试用Pandas读取并清理它: 我用read_excel读取了文件,并从第7行开始创建了一个多索引级别[201320162017…]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
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