【问题标题】:MultiIndex Pandas does not group first index levelMultiIndex Pandas 不分组第一个索引级别
【发布时间】:2018-02-03 12:37:45
【问题描述】:

我正在尝试在行中创建一个具有两级索引的 Pandas 数据框。

info = pd.DataFrame([['A', 1, 3],
                   ['A', 2, 4],
                   ['A', 3, 6],
                   ['B', 1, 9],
                   ['B', 2, 10],
                   ['B', 4, 6]], columns=pd.Index(['C', 'D', 'V'])    
info_new = info.set_index(['C', 'D'], drop=False)

编辑:我想要以下输出:

     V
C  D
A  1 3
   2 4
   3 6
B  1 9
   2 10
   4 6

根据我找到的每条指令,这应该可以。 我还在继续

     V
C  D
A  1 3
A  2 4
A  3 6
B  1 9
B  2 10
B  4 6

显然,多索引在这里不起作用。

我用.is_unique检查了每一列的非唯一值,答案是错误的。 我检查了具有唯一值的列,答案是真的。 我也尝试分配一个 dtype=str,这并没有改变任何东西。

【问题讨论】:

  • 你希望输出是什么?
  • 对不起,根据我的理解,这对我有用,你能发布你所看到的你认为是错误的内容
  • 尝试打印info_new.index。你应该得到MultiIndex(...)
  • info_new.index.is_lexsorted() 返回什么?如果是 lexsorted,它应该会如您所愿。
  • 添加了输出。它说它是一个多索引,但它的行为不像一个。

标签: python pandas multi-index


【解决方案1】:

感谢您的info_new.index.is_lexsorted() 评论。

我通过在 .csv 导入中指定 dtype=str 然后解决了这个问题:

info_new.sortlevel(inplace=True)

【讨论】:

  • 在当前版本的pandas中是info_new.sort_index(inplace=True)
猜你喜欢
  • 1970-01-01
  • 2021-03-27
  • 2020-06-05
  • 2020-05-19
  • 2023-03-10
  • 2015-07-19
  • 2019-11-19
  • 2013-01-22
  • 2018-12-20
相关资源
最近更新 更多