pandas.Series.reset_index#

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

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

这在需要将索引视为一列时很有用,或者在索引无意义且需要在另一操作之前重置为默认值时很有用。

参数:
级别int, str, tuple, 或 list, 默认可选

对于具有 MultiIndex 的 Series,仅从索引中移除指定的级别。默认情况下移除所有级别。

删除布尔值, 默认为 False

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

名称对象,可选

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

inplace布尔值, 默认为 False

在原位修改系列(不要创建新对象)。

allow_duplicates布尔值, 默认为 False

允许创建重复的列标签。

Added in version 1.5.0.

返回:
系列或数据帧或无

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

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