【问题标题】:Attempt to sort pandas df returns multiindex error尝试对 pandas df 进行排序返回多索引错误
【发布时间】:2019-05-04 08:00:48
【问题描述】:

对 python 来说相对较新,我正在尝试使用 pandas sort_values() 按特定列对我的 df 进行排序。但是我收到关于多索引的错误,但我认为我没有创建多索引,对吗?这是我正在练习的数据。我想查看由“diggies”按升序组织的所有数据。

df

  letters digits diggies
0       A      1          7
1       B      2          3
2       C      3         20

df.sort_values(by="diggies") ValueError: 无法在需要显式提供所有级别的多索引中按列 diggies 排序

我是否无意中创建了多索引?有趣的是,我能够从我从 CSV 导入的另一个练习数据集运行排序。我虽然差异可能是数据类型,但它们都是“对象”或“int64”的组合。

关于我为什么会收到此错误以及如何解决它的任何提示?谢谢

***添加信息

MultiIndex(levels=[['digits', 'letters', 'diggies']], 标签=[[1, 0, 2]])

【问题讨论】:

  • 请给我们看 df.columns
  • 刚刚运行 df.columns...确实表明它是一个 multiIndex...为什么会这样,我该如何解决?

标签: python pandas sorting


【解决方案1】:

您可以使用get_level_values 重置index

df.columns=df.columns.get_level_values(0)

【讨论】:

  • 谢谢!那行得通...我将不得不阅读更多内容以了解我如何首先创建多索引以及 .get_level_values() 的工作原理。我赞赏快速响应。
猜你喜欢
  • 2022-08-19
  • 2022-07-05
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2019-02-08
  • 2018-01-13
  • 2014-12-17
相关资源
最近更新 更多