pandas.Series.reset_index#

Series.reset_index(level=None, drop=False, name=NoDefault.no_default, inplace=False, allow_duplicates=False)[源代码]#

在重置索引的情况下生成新的DataFrame或Series。

当索引需要被视为列时,或者当索引没有意义并且需要在另一个操作之前重置为缺省值时,这很有用。

参数
levelInt、str、tuple或list,默认为可选

对于具有多重索引的系列,仅从索引中删除指定的级别。默认情况下删除所有级别。

drop布尔值,默认为False

只需重置索引,而不将其作为列插入到新的DataFrame中。

name对象,可选

用于包含原始系列值的列的名称。用途 self.name 默认情况下。在以下情况下将忽略此参数 drop 是真的。

inplace布尔值,默认为False

就地修改系列(不创建新对象)。

allow_duplicates布尔值,默认为False

允许创建重复的列标签。

1.5.0 新版功能.

退货
系列、DataFrame或无

什么时候 drop 为False(默认值),则返回DataFrame。新创建的列将首先出现在DataFrame中,然后是原始的Series值。什么时候 drop 为True,则为 Series 被归还了。在任何一种情况下,如果 inplace=True ,则不返回值。

参见

DataFrame.reset_index

类似于DataFrame的功能。

示例

>>> 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

使用默认设置生成新系列的步骤 drop 致True。

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

就地更新系列,而不生成新的系列集 inplace 致True。请注意,它还需要 drop=True

>>> s.reset_index(inplace=True, drop=True)
>>> s
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']))

要从索引中删除特定级别,请使用 level

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

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

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