为每个0级索引单独重置1级索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为每个0级索引单独重置1级索引相关的知识,希望对你有一定的参考价值。

说我有以下DataFrame:

                    col1    col2
index0    index1
A         0           10     nan
          1           11      31
          2           12      32
B         0           20     nan
          1           21      41
          2           22      42

我想现在删除带有nans的所有行,保留0级索引,然后重置每个1级索引,使它们再次从0开始:

>>> df.dropna(inplace=True)

                    col1    col2
index0    index1
A         1           11      31
          2           12      32
B         1           21      41
          2           22      42

>>> somehow reset the level 1 indexes

                    col1    col2
index0    index1
A         0           11      31
          1           12      32
B         0           21      41
          1           22      42
答案

达蒙

s=df.dropna()
s.assign(index1=s.groupby(level=0).cumcount()).set_index('index1',append=True).reset_index(level=1,drop=True)
Out[1210]: 
               col1  col2
index0 index1            
A      0         11  31.0
       1         12  32.0
B      0         21  41.0
       1         22  42.0

以上是关于为每个0级索引单独重置1级索引的主要内容,如果未能解决你的问题,请参考以下文章

5级阶梯SQL Server索引

Angular:在同一模板中重置索引值

Angular 和 SwiperJS - 在父滑块索引更改时重置嵌套滑块索引

SQL ——索引视图和事务

solr亿万级索引优化实践-自动生成UUID

将具有 n 级分层索引的 Pandas DataFrame 转换为 n-D Numpy 数组