pandas.Series.reset_index #

系列。reset_index ( level = None , * , drop = False , name = _NoDefault.no_default , inplace = False , allowed_duplicates = False ) [来源] #

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

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

参数
level int、str、tuple 或 list,默认可选

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

drop bool, 默认 False

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

名称对象,可选

用于包含原始系列值的列的名称。self.name默认使用。当drop为 True时,该参数将被忽略。

inplace布尔值,默认 False

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

allowed_duplicates bool, 默认 False

允许创建重复的列标签。

1.5.0 版本中的新增内容。

返回
系列或数据框或无

drop为 False(默认值)时,返回一个 DataFrame。新创建的列将首先出现在 DataFrame 中,然后是原始系列值。当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

要生成一个新系列,默认设置设为 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']))

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

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

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

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