maxframe.dataframe.Series.reset_index#

Series.reset_index(level=None, drop=False, name=<no_default>, inplace=False, default_index_type: DefaultIndexType | str = None, **kwargs)#

生成一个新的 DataFrame 或 Series,并重置其索引。

当索引需要被当作一列处理,或者索引没有意义并需要在其他操作之前重置为默认值时,这非常有用。

参数:
  • level (int, str, tuple, or list, default optional) -- 对于具有 MultiIndex 的 Series,只移除索引中的指定层级。默认情况下移除所有层级。

  • drop (bool, default False) -- 仅重置索引,而不将其作为新 DataFrame 中的一列插入。

  • name (object, optional) -- 用于包含原始 Series 值的列的名称。默认使用 self.name。当 drop 为 True 时此参数将被忽略。

  • inplace (bool, default False) -- 就地修改 Series(不创建新的对象)。

返回:

drop 为 False(默认)时,返回一个 DataFrame。新建的列会出现在 DataFrame 的最前面,后面跟着原始的 Series 值。当 drop 为 True 时,返回一个 Series。无论哪种情况,如果 inplace=True,则不会返回任何值。

返回类型:

Series or DataFrame

参见

DataFrame.reset_index

DataFrame 的类似函数。

示例

>>> import maxframe.tensor as mt
>>> import maxframe.dataframe as md
>>> s = md.Series([1, 2, 3, 4], name='foo',
...               index=md.Index(['a', 'b', 'c', 'd'], name='idx'))

生成一个具有默认索引的 DataFrame。

>>> s.reset_index().execute()
  idx  foo
0   a    1
1   b    2
2   c    3
3   d    4

要指定新列的名称,请使用 name

>>> s.reset_index(name='values').execute()
  idx  values
0   a       1
1   b       2
2   c       3
3   d       4

要生成一个带有默认设置的新 Series,请将 drop 设为 True。

>>> s.reset_index(drop=True).execute()
0    1
1    2
2    3
3    4
Name: foo, dtype: int64

要就地更新 Series 而不生成新的 Series,请将 inplace 设为 True。注意这还需要 drop=True

>>> s.reset_index(inplace=True, drop=True)
>>> s.execute()
0    1
1    2
2    3
3    4
Name: foo, dtype: int64

level 参数对具有多级索引的 Series 很有用。

>>> import numpy as np
>>> import pandas as pd
>>> arrays = [np.array(['bar', 'bar', 'baz', 'baz']),
...           np.array(['one', 'two', 'one', 'two'])]
>>> s2 = md.Series(
...     range(4), name='foo',
...     index=pd.MultiIndex.from_arrays(arrays,
...                                     names=['a', 'b']))

要从索引中移除特定层级,请使用 level

>>> s2.reset_index(level='a').execute()
       a  foo
b
one  bar    0
two  bar    1
one  baz    2
two  baz    3

如果未设置 level,则从索引中移除所有层级。

>>> s2.reset_index().execute()
     a    b  foo
0  bar  one    0
1  bar  two    1
2  baz  one    2
3  baz  two    3