pandas dataframe 重命名列名
参考:pandas dataframe rename column
在数据分析过程中,我们经常需要对数据进行各种处理,包括对数据的清洗、转换、整理等。其中,一个常见的操作就是对数据的列名进行重命名。在pandas库中,我们可以使用rename
函数来实现这个功能。本文将详细介绍如何使用pandas的rename
函数来重命名dataframe的列名。
1. 基本用法
在pandas中,我们可以使用rename
函数来重命名dataframe的列名。rename
函数的基本语法如下:
其中,columns
参数是一个字典,键是旧的列名,值是新的列名。inplace
参数决定了是否在原始dataframe上进行修改,如果为True
,则在原始dataframe上进行修改,如果为False
,则返回一个新的dataframe。
下面是一个简单的示例:
Output:
在这个示例中,我们首先创建了一个dataframe,然后使用rename
函数将列名’A’, ‘B’, ‘C’分别重命名为’a’, ‘b’, ‘c’。
2. 使用函数进行列名重命名
除了使用字典映射的方式进行列名重命名外,我们还可以使用函数进行列名重命名。rename
函数的columns
参数也可以接受一个函数,这个函数会被应用到每一个列名上。
下面是一个示例:
Output:
在这个示例中,我们使用了内置的str.lower
函数将所有的列名转换为小写。
3. 使用rename
函数的axis
参数
rename
函数还有一个axis
参数,它可以用来指定我们要重命名的是行标签还是列标签。axis
参数的默认值是0,表示重命名行标签,如果我们想要重命名列标签,可以将axis
参数设置为1。
下面是一个示例:
Output:
在这个示例中,我们将axis
参数设置为1,然后使用字典映射的方式进行列名重命名。
4. 使用rename
函数的errors
参数
rename
函数还有一个errors
参数,它可以用来指定当旧的列名不存在时的行为。errors
参数的默认值是’ignore’,表示如果旧的列名不存在,那么就忽略这个错误。如果我们想要在旧的列名不存在时抛出错误,可以将errors
参数设置为’raise’。
下面是一个示例:
Output:
在这个示例中,我们尝试将不存在的列名’D’重命名为’d’,并将errors
参数设置为’raise’。因此,当旧的列名不存在时,会抛出一个KeyError
。
5. 使用rename
函数的level
参数
对于具有多级列名的dataframe,我们可以使用rename
函数的level
参数来指定要重命名的列名级别。level
参数的默认值是None,表示重命名所有级别的列名。如果我们想要重命名特定级别的列名,可以将level
参数设置为该级别的索引或名称。
下面是一个示例:
Output:
在这个示例中,我们首先创建了一个具有多级列名的dataframe,然后使用rename
函数的level
参数将第0级的列名’A’, ‘B’, ‘C’分别重命名为’a’, ‘b’, ‘c’。
6. 使用rename
函数的copy
参数
rename
函数还有一个copy
参数,它可以用来指定是否复制原始dataframe。copy
参数的默认值是True,表示创建一个新的dataframe并进行修改。如果我们想要在原始dataframe上进行修改,可以将copy
参数设置为False。
下面是一个示例:
Output:
在这个示例中,我们将copy
参数设置为False,然后使用字典映射的方式进行列名重命名。
7. 使用rename
函数的mapper
参数
rename
函数还有一个mapper
参数,它可以用来指定一个函数或字典,用于对列名进行映射。mapper
参数的使用方式与columns
参数类似,但是mapper
参数更加通用,它可以同时对行标签和列标签进行映射。
下面是一个示例:
Output:
在这个示例中,我们使用mapper
参数进行列名重命名,效果与使用columns
参数相同。
8. 使用rename
函数的index
参数
除了可以重命名列标签外,rename
函数还可以用来重命名行标签。我们可以使用rename
函数的index
参数来指定一个字典或函数,用于对行标签进行映射。
下面是一个示例:
Output:
在这个示例中,我们使用index
参数将行标签’a’, ‘b’, ‘c’分别重命名为’x’, ‘y’, ‘z’。
9. 使用rename
函数的columns
和index
参数
我们还可以同时使用rename
函数的columns
和index
参数来同时对行标签和列标签进行重命名。
下面是一个示例:
Output:
在这个示例中,我们同时使用columns
和index
参数进行行标签和列标签重命名。
10. 使用rename
函数的str
方法
在pandas中,我们还可以使用rename
函数的str
方法来对列名进行字符串操作。例如,我们可以使用str.upper
方法将所有的列名转换为大写,或者使用str.replace
方法来替换列名中的特定字符。
下面是一个示例:
Output:
在这个示例中,我们使用rename
函数的str
方法将所有的列名转换为大写。
总结起来,pandas的rename
函数提供了一种灵活而强大的方式来重命名dataframe的列名。无论是简单的列名替换,还是复杂的列名映射,都可以通过rename
函数轻松实现。