Python学习笔记:pd.rename重命名行列索引标签
一、介绍
df.rename()
方法用于重命名数据框行列的标签,即行索引、列标签。
可以传入一个字典或者一个函数,常用于数据预处理。
- 使用语法
DataFrame.rename(mapper=None, index=None, columns=None,
axis=None, copy=True, inplace=False,
level=None, errors='ignore')
- 参数解释
mapper -- 映射关系(字典、函数)
index -- 行索引
columns -- 列名
axis -- 修改方向 axis=0 行 axis=1 列
copy -- 复制底层数据
inplace -- 是否修改原数据
level -- 针对多层索引 指定级别
errors -- {'ignore', 'raise'} 忽略 or 报错
二、实操
1.创建测试数据集
import pandas as pd
df = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6]})
'''
A B
0 1 4
1 2 5
2 3 6
'''
2.mapper
映射关系,可以是字典,也可以是一个函数。
# 修改行索引 传入字典
df.rename({0:100})
'''
A B
100 1 4
1 2 5
2 3 6
'''
# 传入函数
df.rename(lambda x: x+100)
'''
A B
100 1 4
101 2 5
102 3 6
'''
3.index/columns/axis
重命名时需要指定行、或者列方向。
df.rename(index=mapper)
等同于df.rename(mapper, axis=0)
df.rename(columns=mapper)
等同于df.raname(mapper, axis=1)
# 修改行索引
df.rename(lambda x: x+100, axis=0)
'''
A B
100 1 4
101 2 5
102 3 6
'''
# 修改行索引
df.rename({1:2, 2:4}, axis='index')
# 修改列名
df.rename(lambda x: x+'100', axis=1)
df.rename(columns=lambda x: x+'100') # 同上
'''
A100 B100
0 1 4
1 2 5
2 3 6
'''
# 列名转换为小写
df.rename(str.lower, axis='columns')
# 传入字典
df.rename(columns={'A':'aa', 'B':'bb'})
'''
aa bb
0 1 4
1 2 5
2 3 6
'''
4.转换标签数据类型
df.index
# RangeIndex(start=0, stop=3, step=1)
df.rename(index=str).index
# Index(['0', '1', '2'], dtype='object')
5.修改不存在标签时报错
# 直接修改 忽略报错
df.rename(columns={'A':'aa', 'B':'bb', 'C':'cc'})
# 报错
df.rename(columns={'A':'aa', 'B':'bb', 'C':'cc'}, errors='raise')
# KeyError: "['C'] not found in axis"
三、结论
pd.rename()
方法适合于修改个别的索引和列名,如果需要大量修改或者全部修改的话,适合使用 set_index()
或者 reset_index()
方法。
多层索引也尽量避免使用。
参考链接:pandas学习之df.rename()
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2018-11-04 Python学习笔记:import sys模块(argv、path、platform、exit)
2018-11-04 Oracle学习笔记:wm_concat函数合并字段