• 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()

    参考链接:pandas.DataFrame.rename

    参考链接:11、pandas的修改列名和索引rename()

  • 相关阅读:
    OpenGL编程 基础篇(七)对象的变换——用实心体绘制3D场景
    mysql在查询结果列表前添加一列递增的序号列(最简)
    将中文字符串分割为数组 解决str_split中文乱码php
    file_get_contents 抓取网页乱码。
    js下的sleep实现
    js获取当前时间(昨天、今天、明天)
    JPA为字段设置默认值
    js实现点击按钮弹出上传文件的窗口
    Bootstrap使用模态框modal实现表单提交弹出框
    springboot使用Freemarker继承
  • 原文地址:https://www.cnblogs.com/hider/p/15509392.html
Copyright © 2020-2023  润新知