内容:
·指定columns和index
·直接传入所有被修改元素
·多层级索引替换
from pandas import Series, DataFrame
import pandas as pd
import numpy as np
score = DataFrame(data={"name": ["gom", "hom", "jom", "kom", "lom"],
"score": np.random.randint(0, 100, size=5)})
print(score)
print()
运行结果:
【指定columns和index】
columns/index传入参数为字典。
先读取传入字典中的key,然后再找到对应的索引,字典key对应的value,就是被替换掉的索引。
score_copy1 = score.copy()
score_copy1 = score_copy1.rename(columns={"name": "姓名"}, index={3: "W"})
print(score_copy1)
print()
运行结果:
【直接传入所有被修改元素】
mapper传入参数为一个字典,需要搭配axis使用,默认axis=0,会自动匹配行索引,axis=1,会自动列索引。
"""直接传入所有被修改元素"""
# mapper传入参数为一个字典,需要搭配axis使用,默认axis=0,会自动匹配行索引,axis=1,会自动列索引
score_copy2 = score.copy()
score_copy3 = score.copy()
mapper = {3: "W", "name": "姓名"}
score_copy2 = score_copy2.rename(mapper=mapper, axis=0)
score_copy3 = score_copy3.rename(mapper=mapper, axis=1)
print(score_copy2)
print()
print(score_copy3)
print()
运行结果:
【多层级索引替换】
level未传入参数时,会替换掉行/列所有目标索引,当level指定值时(外——>内:0——>n)
"""多层级索引替换"""
# level未传入参数时,会替换掉行/列所有目标索引,当level指定值时(外——>内:0——>n)
score_copy4 = score.copy()
score_copy5 = score.copy()
score_concat = pd.concat(objs=(score_copy4, score_copy5), axis=1, keys=["上学期", "下学期"])
print(score_concat)
mapper = {
"上学期": "first class",
"下学期": "second class",
"score": "成绩"
}
score_concat = score_concat.rename(mapper=mapper, axis=1,level=0)
print(score_concat)
print()
运行结果: