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_indexDataFrame 的類似函式。
示例
>>> 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