📜  Python|熊猫 Series.reset_index()(1)

📅  最后修改于: 2023-12-03 15:19:21.399000             🧑  作者: Mango

Python | 熊猫 Series.reset_index()

简介

Series.reset_index()是一个熊猫(Pandas)序列(Series)对象的方法,用于重置序列的索引。在数据处理和分析中,经常需要重置索引以重新排列数据。

语法
Series.reset_index(level=None, drop=False, inplace=False)
  • level:用于指定要重置的索引级别,默认为所有级别。可以是整数、字符串或列表。
  • drop:指定是否将原来的索引从结果中删除,默认为False,即将原来的索引添加为一个新的列。
  • inplace:指定是否在原地修改序列,默认为False,即返回一个新的序列。
返回值

返回一个新的熊猫序列(Series)对象,其中索引已经被重置。

示例

假设我们有一个包含学生姓名和成绩的熊猫序列对象:

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Score': [85, 92, 78, 88]}

df = pd.DataFrame(data)
s = df['Name']

print(s)

输出结果为:

0       Alice
1         Bob
2     Charlie
3       David
Name: Name, dtype: object

现在,我们可以使用 reset_index() 方法来重置该序列的索引:

new_s = s.reset_index()
print(new_s)

输出结果为:

   index     Name
0      0    Alice
1      1      Bob
2      2  Charlie
3      3    David
更多用法
指定特定索引级别进行重置

reset_index() 方法允许我们指定要重置的特定索引级别。我们可以通过将 level 参数设置为整数、字符串或列表来实现。

假设我们有一个层次化索引的序列:

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Subject': ['Math', 'English', 'Math', 'English'],
        'Score': [85, 92, 78, 88]}

df = pd.DataFrame(data)
df.set_index(['Name', 'Subject'], inplace=True)
s = df['Score']

print(s)

输出结果为:

Name     Subject
Alice    Math       85
Bob      English    92
Charlie  Math       78
David    English    88
Name: Score, dtype: int64

要重置第一个索引级别,可以将 level 参数设置为0:

new_s = s.reset_index(level=0)
print(new_s)

输出结果为:

   Name  Score
0  Alice     85
1    Bob     92
2  David     88

要重置所有索引级别,可以将 level 参数设置为整数,大于当前最大级别:

new_s = s.reset_index(level=1)
print(new_s)

输出结果为:

    Subject  Score
Name               
Alice   Math     85
Bob     Math     92
David   Math     78
Bob     Math     88
删除原索引

reset_index() 方法还可以通过将 drop 参数设置为True来删除原索引。在某些情况下,当我们不再需要原索引时,这可能会很有用。

new_s = s.reset_index(drop=True)
print(new_s)

输出结果为:

0    85
1    92
2    78
3    88
Name: Score, dtype: int64
原地修改

默认情况下,reset_index() 方法不会修改原来的序列,而是返回一个新的序列。如果希望原地修改序列,可以将 inplace 参数设置为True。

s.reset_index(inplace=True)
print(s)

输出结果为:

   index     Name
0      0    Alice
1      1      Bob
2      2  Charlie
3      3    David
Name: Name, dtype: object

以上代码中,s 序列的索引已经被重置,并更新了原来的序列。

结论

Series.reset_index() 是一个非常有用的方法,用于重置熊猫序列的索引。它提供了灵活的选项,可以指定要重置的特定索引级别,并可以选择删除原索引和原地修改序列的功能。