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,则不会返回任何值。- 返回类型:
参见
DataFrame.reset_indexDataFrame 的类似函数。
示例
>>> 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