下面是关于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中的数据进行处理。