pandas.Series.reset_index#

Series.reset_index(level=None, *, drop=False, name=<no_default>, inplace=False, allow_duplicates=False)[原始碼]#

生成一個新的 DataFrame 或 Series,其中索引已重置。

這在需要將索引視為列,或者當索引無意義需要重置為預設值後再進行其他操作時很有用。

引數:
levelint, str, tuple, 或 list, 預設可選

對於具有 MultiIndex 的 Series,僅從索引中刪除指定的級別。預設刪除所有級別。

dropbool, default False

僅重置索引,而不將其作為列插入到新的 DataFrame 中。

nameobject,可選

用於包含原始 Series 值的列的名稱。預設使用 self.name。當 drop 為 True 時,此引數將被忽略。

inplacebool, default False

就地修改 Series(不建立新物件)。

allow_duplicatesbool, 預設 False

允許建立重複的列標籤。

返回:
Series 或 DataFrame 或 None

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

要生成一個帶有預設值的 Series,請將 drop 設定為 True。

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

對於具有多級索引的 Series,level 引數很有趣。

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