一、rename()方法简介
在Pandas的Dataframe中,rename()是常用的更改列名的方法,它可以直接修改Dataframe对象本身,也可以返回一个新的Dataframe对象。
rename()方法的基本语法如下:
df.rename(columns={原列名: 新列名}, inplace=True)
其中,columns参数为更改列名所需的字典,inplace参数为是否在原Dataframe上进行修改的布尔值。
二、单列名更改
单列名更改是更改列名最常用的方式。下面的例子中,一个名为"df"的Dataframe对象旗下有两列分别命名为"a"和"b",运用rename()方法将"b"列名更改为"c":
import pandas as pd
df = pd.DataFrame({'a': [1, 2], 'b': [3, 4]})
df.rename(columns={'b': 'c'}, inplace=True)
print(df)
输出结果为:
a c
0 1 3
1 2 4
可以看到,"b"列成功更改为"c"列,输出结果中有"a"和"c"两列。
三、多列名同时更改
在实际使用中,有时需要对多个列名同时进行更改。
将Dataframe对象中多个列的名字同时更改,可通过字典的方式实现,如下例:
df = pd.DataFrame({'a': [1, 2], 'b': [3, 4], 'c': [5, 6]})
df.rename(columns={'a': 'A', 'b': 'B', 'c': 'C'}, inplace=True)
print(df)
输出结果为:
A B C
0 1 3 5
1 2 4 6
可以看到,"a"、"b"、"c"三列名均成功更改为"A"、"B"、"C"三列,输出结果中有三列按顺序排列。
四、通过函数更改列名
在使用Pandas进行数据分析时,往往需要对列名进行处理,这时就可以通过函数的方式来更改列名。
例如,下方例子中,Dataframe对象中有三列分别命名为"a"、"b"和"c",我想将它们的列名全部改为小写字母,并且在字母前加上"col_"前缀:
df = pd.DataFrame({'a': [1, 2], 'b': [3, 4], 'c': [5, 6]})
df.rename(columns=lambda x: "col_" + x.lower(), inplace=True)
print(df)
输出结果为:
col_a col_b col_c
0 1 3 5
1 2 4 6
可以看到,在使用lambda函数之后,三列名都改为小写并加上了"col_"。
五、更改索引名
除了可以更改列名,也可更改行索引名。Pandas中提供了rename()方法对行索引名进行更改,基本语法如下:
df.rename(index={原索引名: 新索引名}, inplace=True)
例如,我们有一个名为"df"的Dataframe对象,索引名分别为"0"和"1",运用rename()方法将索引名"0"更改为"row1":
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['0', '1'])
df.rename(index={'0': 'row1'}, inplace=True)
print(df)
输出结果为:
A B
row1 1 3
1 2 4
可以看到,索引名"0"已成功更改为"row1"。
六、结语
Pandas的rename()方法提供了方便的接口,支持在Dataframe对象中修改列名、索引名以及列名和索引名的大小写转换等功能。在实际数据处理中,更改列名是非常常见的操作,因此熟练掌握rename()方法是非常重要的。