📜  如何在 pandas 中删除索引列 - Python (1)

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

如何在 pandas 中删除索引列 - Python

在 Pandas 中,我们可以通过设置 DataFrame 的 index 属性来设置索引列。在某些情况下,我们可能想要删除索引列,因为它不包含任何有用的信息,或者因为我们只对数据列感兴趣。本文将介绍在 Pandas 中如何删除索引列。

删除单个索引列

要删除单个索引列,请使用 DataFrame 的 reset_index 方法,将 drop 参数设置为 True

import pandas as pd

data = {'Name': ['Tom', 'Lucy', 'John', 'Lily'],
        'Gender': ['Male', 'Female', 'Male', 'Female'],
        'Age': [21, 23, 22, 24]}
df = pd.DataFrame(data)
df = df.set_index('Name')

print(df)

# Output:
#        Gender  Age
# Name              
# Tom      Male   21
# Lucy   Female   23
# John     Male   22
# Lily   Female   24

df = df.reset_index(drop=True)

print(df)

# Output:
#    Gender  Age
# 0    Male   21
# 1  Female   23
# 2    Male   22
# 3  Female   24

如上所示,我们使用 set_index 方法将 Name 列设置为索引,然后使用 reset_index 方法删除了 Name 索引列。

删除多个索引列

要删除多个索引列,可以将需要保留的列名传递给 reset_indexlevel 参数,以便仅保留这些索引列。默认情况下,level 参数设置为 None,这意味着将删除所有索引列。

import pandas as pd

data = {'Name': ['Tom', 'Lucy', 'John', 'Lily'],
        'Gender': ['Male', 'Female', 'Male', 'Female'],
        'Age': [21, 23, 22, 24]}
df = pd.DataFrame(data)
df = df.set_index(['Name', 'Gender'])

print(df)

# Output:
#               Age
# Name Gender     
# Tom  Male      21
# Lucy Female    23
# John Male      22
# Lily Female    24

df = df.reset_index(level='Gender')

print(df)

# Output:
#        Gender  Age
# Name              
# Tom      Male   21
# Lucy   Female   23
# John     Male   22
# Lily   Female   24

如上所示,我们使用 set_index 方法将 Name 和 Gender 列设置为索引,然后使用 reset_index 方法删除了 Gender 索引列。

总结

通过使用 Pandas 的 reset_index 方法,可以方便地删除单个或多个索引列。在删除单个索引列时,只需将 drop 参数设置为 True;在删除多个索引列时,可以将需要保留的列名传递给 level 参数。