pandas.Series.reset_index#
- Series.reset_index(level=None, drop=False, name=NoDefault.no_default, inplace=False, allow_duplicates=False)[源代码]#
在重置索引的情况下生成新的DataFrame或Series。
当索引需要被视为列时,或者当索引没有意义并且需要在另一个操作之前重置为缺省值时,这很有用。
- 参数
- levelInt、str、tuple或list,默认为可选
对于具有多重索引的系列,仅从索引中删除指定的级别。默认情况下删除所有级别。
- drop布尔值,默认为False
只需重置索引,而不将其作为列插入到新的DataFrame中。
- name对象,可选
用于包含原始系列值的列的名称。用途
self.name
默认情况下。在以下情况下将忽略此参数 drop 是真的。- inplace布尔值,默认为False
就地修改系列(不创建新对象)。
- allow_duplicates布尔值,默认为False
允许创建重复的列标签。
1.5.0 新版功能.
- 退货
- 系列、DataFrame或无
什么时候 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
就地更新系列,而不生成新的系列集 inplace 致True。请注意,它还需要
drop=True
。>>> s.reset_index(inplace=True, drop=True) >>> s 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