pandas列重命名

pandas列重命名

pandas列重命名

介绍

在使用 pandas 处理数据的时候,经常需要对数据集的列名称进行重新命名。这可以通过 pandas 提供的 rename() 方法来实现。本文将详细介绍 pandas 中的列重命名操作,并提供一些示例代码和运行结果。

pandas 的 rename() 方法

rename() 方法是 pandas 中用于对 DataFrame 或 Series 的索引、列名进行重新命名的方法。它接受一个字典作为参数,字典中的键表示原始的索引或列名,值表示更新后的索引或列名。

重命名列名

首先我们来看一个简单的示例,并展示如何使用 rename() 方法来重命名 DataFrame 的列名。

import pandas as pd

# 创建一个示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)

# 输出原始的 DataFrame
print("原始的 DataFrame:")
print(df)

# 重命名列名
df = df.rename(columns={'Name': '姓名', 'Age': '年龄', 'City': '城市'})

# 输出重命名后的 DataFrame
print("重命名后的 DataFrame:")
print(df)

运行以上代码,输出如下所示:

原始的 DataFrame:
      Name  Age      City
0    Alice   25  New York
1      Bob   30    London
2  Charlie   35     Paris
重命名后的 DataFrame:
        姓名  年龄        城市
0    Alice  25  New York
1      Bob  30    London
2  Charlie  35     Paris

可以看到,原始的 DataFrame 中的列名被成功地重命名为 '姓名''年龄''城市'

重命名索引

除了列名,rename() 方法还可以用于重命名索引。我们来看一个示例,展示如何使用 rename() 方法来重命名 DataFrame 的索引。

import pandas as pd

# 创建一个示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
df = df.set_index('Name')  # 将 'Name' 列设置为索引列

# 输出原始的 DataFrame
print("原始的 DataFrame:")
print(df)

# 重命名索引
df = df.rename(index={'Alice': 'A', 'Bob': 'B', 'Charlie': 'C'})

# 输出重命名后的 DataFrame
print("重命名后的 DataFrame:")
print(df)

运行以上代码,输出如下所示:

原始的 DataFrame:
         Age      City
Name                  
Alice     25  New York
Bob       30    London
Charlie   35     Paris
重命名后的 DataFrame:
        Age      City
Name                 
A        25  New York
B        30    London
C        35     Paris

可以看到,原始的 DataFrame 中的索引被成功地重命名为 'A''B''C'

rename() 方法的其他用途

除了简单的列名和索引重命名,rename() 方法还可以进行更复杂的操作。下面我们来介绍一些常见的用途。

重命名部分列名或索引

rename() 方法还可以用于仅仅重命名 DataFrame 或 Series 中的某些列名或索引。我们可以通过传递一个函数来实现这个目的。

import pandas as pd

# 创建一个示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)

# 输出原始的 DataFrame
print("原始的 DataFrame:")
print(df)

# 通过函数重命名部分列名
df = df.rename(columns=lambda x: x.upper() if x.startswith('C') else x)

# 输出重命名后的 DataFrame
print("重命名后的 DataFrame:")
print(df)

运行以上代码,输出如下所示:

原始的 DataFrame:
      Name  Age      City
0    Alice   25  New York
1      Bob   30    London
2  Charlie   35     Paris
重命名后的 DataFrame:
      Name  Age    CITY
0    Alice   25    NEW YORK
1      Bob   30    LONDON
2  Charlie   35    PARIS

可以看到,通过传递一个函数,我们将以字母 'C' 开头的列名重命名为大写格式。其余列名保持不变。

在原地修改或创建副本

默认情况下,rename() 方法返回一个副本,而不是在原始 DataFrame 或 Series 上进行修改。如果想在原地进行修改,可以设置 inplace=True 参数。

import pandas as pd

# 创建一个示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)

# 输出原始的 DataFrame
print("原始的 DataFrame:")
print(df)

# 在原地进行重命名
df.rename(columns={'Name': '姓名', 'Age': '年龄', 'City': '城市'}, inplace=True)

# 输出重命名后的 DataFrame
print("重命名后的 DataFrame:")
print(df)

运行以上代码,输出与之前的示例相同。注意,在原地进行修改时,不需要对 DataFrame 进行重新赋值。

修改索引和列名的标签

rename() 方法还可以用于修改索引和列名的标签。它接受一个字典作为参数,字典中的键表示原始的标签,值表示更新后的标签。

import pandas as pd

# 创建一个示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
df = df.set_index('Name')  # 将 'Name' 列设置为索引列

# 输出原始的 DataFrame
print("原始的 DataFrame:")
print(df)

# 修改索引和列名的标签
df = df.rename(index=str.title, columns=str.upper)

# 输出重命名后的 DataFrame
print("重命名后的 DataFrame:")
print(df)

运行以上代码,输出如下所示:

原始的 DataFrame:
         Age      City
Name                  
Alice     25  New York
Bob       30    London
Charlie   35     Paris
重命名后的 DataFrame:
         AGE      CITY
Name                  
Alice     25  NEW YORK
Bob       30    LONDON
Charlie   35     PARIS

可以看到,通过传递函数 str.titlestr.upper,我们将索引和列名的标签修改为了标题格式和大写格式。

结论

通过使用 pandas 的 rename() 方法,我们可以轻松地对 DataFrame 或Series 的列名和索引进行重命名操作。我们可以通过传递一个字典或函数来指定需要重命名的列名或索引,并可以选择在原地修改或创建副本。此外,rename() 方法还可以进行更复杂的操作,如仅重命名部分列名或索引,修改索引和列名的标签等。

重命名列名和索引在数据分析和处理中经常遇到的需求。通过重命名,我们可以提高数据的可读性和可操作性,使得数据分析更加方便快捷。

这篇文章介绍了 pandas 的 rename() 方法的用法,并给出了一些示例代码和运行结果。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程