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_index

DataFrame 的类似函数。

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