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