pandas.DataFrame.reset_index 和 groupby 的绝妙搭配


当使用 pandas 的 groupby 功能时,如果不设置 as_index 为 False, 那么 groupby 默认会把做 groupby 的 col 作为 index 来使用。 如果存在多个 col,则形成的是 multiIndex。

如果这个时候需要把此时作为 index 的数据提取出来,重新作为 column,自己操作就会很麻烦。

幸运的是 pandas 提供了一个 reset_index 的功能,他可以基于默认值自动地更新index同时将原来的 index 添加为新的列,也就是把 index 提取了出来。

代码示例:

>>> df
         class  max_speed
falcon    bird      389.0
parrot    bird       24.0
lion    mammal       80.5
monkey  mammal        NaN

>>> df.reset_index()
    index   class  max_speed
0  falcon    bird      389.0
1  parrot    bird       24.0
2    lion  mammal       80.5
3  monkey  mammal        NaN