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

问题描述 投票: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
python pandas dataframe indexing
1个回答
0
投票

达蒙

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
© www.soinside.com 2019 - 2024. All rights reserved.