您的位置:

Dataframe更改列名

一、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()方法是非常重要的。