【发布时间】:2019-07-26 01:09:51
【问题描述】:
我有一个这种格式的 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: Too many levels: Index has only 1 level, not 2
-
堆叠列索引:
df.stack()
这给了我一个错误:TypeError: '>' not supported between 'str' and 'int'
-
我试过这个:
df.columns=df.columns.get_level_values(0)
这给了我作为 [2013, 2013, 2013, 2016,2016,2016...] 的第一级 MultiIndex。但我希望输出 df 在这里有两个级别的索引:0 级和 3 级。
作为第一步,我希望删除“未命名...”列名称。我试图将 df 作为输出而不是图片发布,但不确定如何以正确的方式进行操作——当我从 jupyter notebook 复制粘贴时,它们粘贴的东西都搞砸了。我对在这里发布问题很陌生……所以仍在努力。
【问题讨论】:
-
拥有可重现的数据示例和一些您尝试过的代码将帮助您获得帮助。
-
请张贴一个小样本df和一个预期的df作为文本(无图像),并简要解释逻辑。谢谢
-
dropna(how='all')可以吗? -
我尝试将 df 作为输出而不是图片发布,但不确定如何以正确的方式进行操作 - 当我从 jupyter notebook 复制粘贴时,它们粘贴的内容都搞砸了。我对在这里发布问题很陌生……所以仍在努力。谢谢!
标签: python pandas data-cleaning