【问题标题】:How to convert multilevel index to columns in Python. (IndexError: cannot do a non-empty take from an empty axes.)如何将多级索引转换为 Python 中的列。 (IndexError:不能从空轴中进行非空拍摄。)
【发布时间】:2019-11-05 05:44:36
【问题描述】:

我有一个看起来像这样的数据框(命名 = 能量)(请参考下图)

Data Frame with multilevel index

Python 正在读取前三列作为数据帧的索引。

我想重置索引并将索引转换为三个单独的列。

但是,当我在数据帧上使用 reset_index 时。

energy.reset_index(inplace = True)

我收到以下错误。

IndexError: 无法从空坐标区执行非空操作。

【问题讨论】:

  • 看起来最低级别的索引是NaN。也许您可以将其设置为一个值,然后运行reset_index()
  • 我尝试link 摆脱多级索引中的 NaN。但是,当我尝试这样做时,我得到了同样的错误。 IndexError: cannot do a non-empty take from an empty axes。还有什么我可以尝试的吗?
  • 如果可以的话,您能否发布一些创建此数据框的代码?
  • import pandas as pd import numpy as np energy = pd.ead_excel(r-'\local_path\Energy_indicators.slx', header= 17, skipfooter=38) energy.head() 我用来从 Excel 文件创建数据框的代码
  • 抱歉上面的代码看起来如何,不知道如何格式化它不会显示为一行

标签: python pandas


【解决方案1】:

我找到了一个答案(在 SO 上),如果 MultiIndex 的一个级别 包含 only NaN 值,然后 reset_index 只引发 这个例外。

尝试单独删除 MultiIndex 的每个级别,如果它包含 只有 NaN 值,然后可能带有 drop=True 参数。

【讨论】:

    猜你喜欢
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2022-06-11
    • 2021-12-17
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多