pandas.Series.reset_index#
- Series.reset_index(level=None, *, drop=False, name=_NoDefault.no_default, inplace=False, allow_duplicates=False)[源代码]#
生成一个索引重置后的新DataFrame或Series。
当索引需要作为列进行处理,或者索引无意义需要重置为默认值后再进行其他操作时,此方法非常有用。
- Parameters:
- level整数、字符串、元组或列表,默认为可选
对于具有 MultiIndex 的 Series,仅从索引中删除指定的级别。默认删除所有级别。
- dropbool,默认 False
仅重置索引,而不将其作为列插入新 DataFrame。
- nameobject, optional
包含原始 Series 值的列的名称。默认为
self.name。当 drop 为 True 时,忽略此参数。- inplacebool,默认 False
原地修改 Series(不创建新对象)。
- allow_duplicatesbool,默认 False
允许创建重复的列标签。
在 1.5.0 版本加入.
- Returns:
- Series 或 DataFrame 或 None
当 drop 为 False(默认值)时,返回一个 DataFrame。新创建的列将首先出现在 DataFrame 中,然后是原始 Series 的值。当 drop 为 True 时,返回一个 Series。在任何一种情况下,如果
inplace=True,则不返回任何值。
参见
DataFrame.reset_indexDataFrame 的类似函数。
Examples
>>> s = pd.Series([1, 2, 3, 4], name='foo', ... index=pd.Index(['a', 'b', 'c', 'd'], name='idx'))
生成具有默认索引的 DataFrame。
>>> s.reset_index() idx foo 0 a 1 1 b 2 2 c 3 3 d 4
要指定新列的名称,请使用 name。
>>> s.reset_index(name='values') idx values 0 a 1 1 b 2 2 c 3 3 d 4
要生成一个具有默认值的 Series,请将 drop 设置为 True。
>>> s.reset_index(drop=True) 0 1 1 2 2 3 3 4 Name: foo, dtype: int64
level 参数对于具有多级索引的 Series 很有用。
>>> arrays = [np.array(['bar', 'bar', 'baz', 'baz']), ... np.array(['one', 'two', 'one', 'two'])] >>> s2 = pd.Series( ... range(4), name='foo', ... index=pd.MultiIndex.from_arrays(arrays, ... names=['a', 'b']))
要从 Index 中删除特定级别,请使用 level。
>>> s2.reset_index(level='a') a foo b one bar 0 two bar 1 one baz 2 two baz 3
如果未设置 level,则将删除 Index 中的所有级别。
>>> s2.reset_index() a b foo 0 bar one 0 1 bar two 1 2 baz one 2 3 baz two 3