Python Pandas – 修改索引名称
在 Pandas 中,索引就是标签。它们是数据框中行和列的标识符,用于标识数据。
在 Pandas 中,数据集中的行可以通过唯一的标签标识。索引标签可以是整数,字符串或任何其他适当的 Python 数据类型。索引也可以包含层次结构,这在 Pandas 中称为多级索引。
不过,有时候我们需要修改索引名称,因为索引名称的标识符可能不太适合我们的需求,比如太长、太繁琐等。那么,Pandas 可以如何修改索引名称呢?
修改单层索引名称
假设我们有以下数据集:
import pandas as pd
data = {'name': ['John', 'Mike', 'Bob'],
'age': [30, 25, 18],
'gender': ['Male', 'Male', 'Male']}
df = pd.DataFrame(data)
print(df)
输出:
name age gender
0 John 30 Male
1 Mike 25 Male
2 Bob 18 Male
现在,我们想修改索引名称为‘序号’。可以使用 rename_axis 函数。
df = df.rename_axis('序号')
print(df)
输出:
name age gender
序号
0 John 30 Male
1 Mike 25 Male
2 Bob 18 Male
此时,我们可以看到,索引名称已经被修改为‘序号’了。
修改多层索引名称
当索引有多层时,修改它们的方法是类似的。
假设我们有以下数据集:
import pandas as pd
data = [['New York', 2020, 100],
['New York', 2021, 120],
['Los Angeles', 2020, 90],
['Los Angeles', 2021, 110]]
df = pd.DataFrame(data, columns=['city', 'year', 'sales'])
df = df.set_index(['city', 'year'])
print(df)
输出:
sales
city year
New York 2020 100
2021 120
Los Angeles 2020 90
2021 110
现在,我们想修改第一个索引层级的名称为‘城市’,第二个索引层级的名称为‘年份’。可以使用 rename_axis 函数:
df = df.rename_axis(['城市', '年份'])
print(df)
输出:
sales
城市 年份
New York 2020 100
2021 120
Los Angeles 2020 90
2021 110
此时,我们可以看到,多层索引名称已经被修改为‘城市’和‘年份’了。
修改列名称
在 Pandas 中,修改列名称的方法与修改索引名称的方法类似,可以使用 rename 函数。
假设我们有以下数据集:
import pandas as pd
data = {'name': ['John', 'Mike', 'Bob'],
'age': [30, 25, 18],
'gender': ['Male', 'Male', 'Male']}
df = pd.DataFrame(data)
print(df)
输出:
name age gender
0 John 30 Male
1 Mike 25 Male
2 Bob 18 Male
现在,我们想修改列名称为‘姓名’、‘年龄’和‘性别’。可以使用 rename 函数。
df = df.rename(columns={'name': '姓名', 'age': '年龄', 'gender': '性别'})
print(df)
输出:
姓名 年龄 性别
0 John 30 Male
1 Mike 25 Male
2 Bob 18 Male
此时,我们可以看到,列名称已经被修改为‘姓名’、‘年龄’和‘性别’了。
结论
在 Pandas 中,修改索引和列名称的方法相对比较简单。我们可以使用 rename_axis 函数来修改索引名称,使用 rename 函数来修改列名称。同时,值得注意的是,使用这些函数时,我们可以传递字典形式的参数,以便同时修改多个名称。