首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在已有列的数据帧中设置多级索引

如何在已有列的数据帧中设置多级索引
EN

Stack Overflow用户
提问于 2017-07-08 19:14:06
回答 2查看 6.3K关注 0票数 2

我有一个如下的数据框架:

代码语言:javascript
复制
     A      B     C     D
0    hola   32    43    54
1    hey    87    67    45
2    hi     10    54    89
3    hola   19    34    12
4    hi     11    59    09

我需要使用A和B设置多级索引,这是按A分组的。我需要以下数据帧

代码语言:javascript
复制
 A      B     C     D
hola   32    43    54
       19    34    12
hey    87    67    45
hi     10    54    89
       11    59    09

我尝试过使用df.set_index('A','B'),我得到了

代码语言:javascript
复制
A      B     C     D
hola   32    43    54
hola   19    34    12
hey    87    67    45
hi     10    54    89
hi     11    59    09
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-08 19:20:52

您需要首先进行排序。

代码语言:javascript
复制
df.sort_values(['A','B']).set_index(['A','B'])
Out[60]: 
          C   D
A    B         
hey  87  67  45
hi   10  54  89
     11  59   9
hola 19  34  12
     32  43  54
票数 5
EN

Stack Overflow用户

发布于 2017-07-08 21:14:54

首先排序不是必须的-您正在设置MultiIndex,但它不是词法排序的:

代码语言:javascript
复制
df.set_index(['A','B']).index.is_lexsorted()
False

作为一种替代方法,将索引设置为您已有的索引,并在事实发生后对其进行排序:

代码语言:javascript
复制
df.set_index(['A','B']).sort_index()
          C   D
A    B         
hey  87  67  45
hi   10  54  89
     11  59   9
hola 19  34  12
     32  43  54
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44985577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档