pandas中df.rename()的具体使用

  • Post category:Python

下面是关于pandas中df.rename()方法的详细攻略。

一、方法简介

df.rename()方法是pandas中用于修改DataFrame列名或者行名的方法,可以用于修改列名或者行名的序号以及具体的列名或者行名。

该方法的基本语法为:

DataFrame.rename(mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False, level=None)

df.rename()的主要参数包括:

  • mapper:用于指定要修改的列名或者行名的字典。
  • index:用于指定要修改的行名字典。
  • columns:用于指定要修改的列名字典。
  • axis:表示要修改的轴的方向。axis=0表示对行名进行修改,而axis=1则表示对列名进行修改。
  • copy:表示是否创建一份新的DataFrame。
  • inplace:表示是否直接修改原来的DataFrame。
  • level:用于多层索引的情况下,指定要修改的层级。

二、示例说明

1. 修改列名

假设现在有一个DataFrame,其中的列名包含了一些特殊字符,需要将这些特殊字符替换为普通的字符。代码如下:

import pandas as pd
import numpy as np

# 构造DataFrame对象
data = {'Name#1': ['Tom', 'Jerry', 'Mike', 'Lily', 'Kitty'],
        'Name#2': ['Lucy', 'Coco', 'Lily', 'Kate', 'Sophia'],
        'Grade%': [85, 92, 90, 80, 87],
        'Grade&': [91, 82, 88, 76, 85]}
df = pd.DataFrame(data)

# 输出原始的DataFrame对象
print("Original DataFrame:\n", df)

# 替换列名中的特殊字符
df = df.rename(columns={"Name#1": "Name1", "Name#2": "Name2", "Grade%": "Grade1", "Grade&": "Grade2"})

# 输出修改后的DataFrame对象
print("Modified DataFrame:\n", df)

输出结果为:

Original DataFrame:
     Name#1   Name#2  Grade%  Grade&
0      Tom     Lucy      85      91
1    Jerry     Coco      92      82
2     Mike     Lily      90      88
3     Lily     Kate      80      76
4    Kitty   Sophia      87      85
Modified DataFrame:
    Name1   Name2  Grade1  Grade2
0    Tom    Lucy       85      91
1  Jerry    Coco       92      82
2   Mike    Lily       90      88
3   Lily    Kate       80      76
4  Kitty  Sophia       87      85

可以看到,原始的DataFrame中的列名包含了“#”和“%”等特殊字符,通过df.rename()方法可以将这些特殊字符替换为普通字符。

2. 修改列名和行名

假设现在有一个DataFrame,其中既需要修改列名,也需要修改行名。代码如下:

import pandas as pd
import numpy as np

# 构造DataFrame对象
data = {'Name#1': ['Tom', 'Jerry', 'Mike', 'Lily', 'Kitty'],
        'Name#2': ['Lucy', 'Coco', 'Lily', 'Kate', 'Sophia'],
        'Grade%': [85, 92, 90, 80, 87],
        'Grade&': [91, 82, 88, 76, 85]}
df = pd.DataFrame(data, index=['one', 'two', 'three', 'four', 'five'])

# 输出原始的DataFrame对象
print("Original DataFrame:\n", df)

# 替换列名中的特殊字符,并修改行名
df = df.rename(index={"two": "two-new", "four": "four-new"}, 
               columns={"Name#1": "Name1", "Name#2": "Name2", "Grade%": "Grade1", "Grade&": "Grade2"})

# 输出修改后的DataFrame对象
print("Modified DataFrame:\n", df)

输出结果为:

Original DataFrame:
       Name#1   Name#2  Grade%  Grade&
one       Tom     Lucy      85      91
two     Jerry     Coco      92      82
three    Mike     Lily      90      88
four     Lily     Kate      80      76
five    Kitty   Sophia      87      85
Modified DataFrame:
         Name1   Name2  Grade1  Grade2
one        Tom    Lucy       85      91
two-new  Jerry    Coco       92      82
three     Mike    Lily       90      88
four-new  Lily    Kate       80      76
five     Kitty  Sophia       87      85

可以看到,通过在df.rename()方法中指定index参数和columns参数,可以同时对DataFrame的列名和行名进行修改,从而方便地对DataFrame中的数据进行处理。