📜  如何更改 Pandas 中的索引值?(1)

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

如何更改 Pandas 中的索引值?

Pandas 是一个强大的数据处理库,它可用于处理各种类型的数据,包括数值、文本、日期和时间等。在 Pandas 中,我们可以使用索引来对数据进行排序、筛选、分组和聚合等操作。

更改索引值的方法
  1. 使用 set_index() 方法

set_index() 方法可用于将一个或多个列设置为新的索引。例如,以下代码将 dfname 列设置为新的索引:

import pandas as pd

df = pd.read_csv("data.csv")
df.set_index("name", inplace=True)
  1. 使用 reset_index() 方法

reset_index() 方法可用于将现有的索引设置为列,并创建一个新的默认整数索引。例如,以下代码将 df 的现有索引重置为默认整数索引:

import pandas as pd

df = pd.read_csv("data.csv")
df.reset_index(inplace=True)
  1. 直接更改索引值

如果您只想更改索引的值而不更改列,可以使用 rename() 方法。例如,以下代码将 df 的索引为 "old_index" 的行更改为新的索引值 "new_index"

import pandas as pd

df = pd.read_csv("data.csv")
df.rename(index={"old_index": "new_index"}, inplace=True)
示例

为了更好地理解如何更改 Pandas 中的索引值,请看以下示例:

假设我们有以下数据框:

import pandas as pd

data = {"name": ["Alice", "Bob", "Charlie", "David"],
        "age": [20, 21, 22, 23],
        "gender": ["F", "M", "M", "M"]}

df = pd.DataFrame(data)

输出:

       name  age gender
0     Alice   20      F
1       Bob   21      M
2   Charlie   22      M
3     David   23      M

现在,我们想将 name 列设置为新的索引。我们可以使用 set_index() 方法来完成此操作:

df.set_index("name", inplace=True)

输出:

         age gender
name              
Alice     20      F
Bob       21      M
Charlie   22      M
David     23      M

现在,name 列已经成为了新的索引。您可以通过以下方式来验证它:

print(df.index)

输出:

Index(['Alice', 'Bob', 'Charlie', 'David'], dtype='object', name='name')

接下来,我们将 df 的现有索引重置为默认整数索引。我们可以使用 reset_index() 方法来完成此操作:

df.reset_index(inplace=True)

输出:

   index     name  age gender
0      0    Alice   20      F
1      1      Bob   21      M
2      2  Charlie   22      M
3      3    David   23      M

现在,df 的索引已经重置为默认整数索引。您可以通过以下方式来验证它:

print(df.index)

输出:

RangeIndex(start=0, stop=4, step=1)

最后,假设我们想将 df 的索引为 "Charlie" 的行更改为新的索引值 "Chaz"。我们可以使用 rename() 方法来完成此操作:

df.rename(index={"Charlie": "Chaz"}, inplace=True)

输出:

     index     name  age gender
0        0    Alice   20      F
1        1      Bob   21      M
2        2     Chaz   22      M
3        3    David   23      M

现在,df 的索引为 "Charlie" 的行已更改为新的索引值 "Chaz"。您可以通过以下方式来验证它:

print(df.index)

输出:

Index(['Alice', 'Bob', 'Chaz', 'David'], dtype='object', name='name')

以上是更改 Pandas 中的索引值的方法和示例。希望本文能够帮助您更好地处理 Pandas 中的数据。