當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.Series.reset_index用法及代碼示例


用法:

Series.reset_index(level=None, drop=False, name=NoDefault.no_default, inplace=False)

生成一個新的 DataFrame 或 Series 並重置索引。

當索引需要被視為列時,或者當索引沒有意義並且需要在另一個操作之前重置為默認值時,這很有用。

參數

levelint、str、tuple 或 list,默認可選

對於具有 MultiIndex 的係列,僅從索引中刪除指定的級別。默認情況下刪除所有級別。

drop布爾值,默認為 False

隻需重置索引,無需將其作為列插入到新的 DataFrame 中。

name對象,可選

用於包含原始係列值的列的名稱。默認使用self.name。當 drop 為 True 時,忽略此參數。

inplace布爾值,默認為 False

就地修改係列(不要創建新對象)。

返回

Series 或 DataFrame 或 None

drop 為 False(默認值)時,返回 DataFrame。新創建的列將首先出現在 DataFrame 中,然後是原始係列值。當 drop 為 True 時,返回 Series。在任何一種情況下,如果 inplace=True ,則不返回任何值。

例子

>>> 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 參數對於具有 multi-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

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.Series.reset_index。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。