Pandas.DataFrame的行名和列名的修改

作者:饺子大人 时间:2022-10-12 12:40:35 

pandas.DataFrame行名(index)和列名(columns)的修改方法如下。

rename()

  • 任意的行名(index)和列名(columns)的修改

add_prefix(), add_suffix()

  • 列名的接头词和结尾词的追加

index和columns元素的更新

  • 行名和列名全部修改

接下来,对每个方法进行说明。

rename()

  • 多个行名和列名的修改

  • 原DataFrame的修改(参数inplace)

  • 使用lambda表达式和函数进行批处理

add_prefix(), add_suffix()

index和columns元素的更新

首先,先生成一个DaraFrame。

import pandas as pd

df = pd.DataFrame({'A': [11, 21, 31],
                   'B': [12, 22, 32],
                   'C': [13, 23, 33]},
                  index=['ONE', 'TWO', 'THREE'])

print(df)
#         A   B   C
# ONE    11  12  13
# TWO    21  22  23
# THREE  31  32  33

DataFrame.rename()

函数DataFrame.rename()可以对任意行和列的名称进行修改。
DataFrame.rename()的参数有index和columns,使用"{旧值:新值}"字典的形式进行参数的指定。

index为行,columns为列。只想修改某行或者某列的时候,只需要单独指定一个参数即可。

修改后,返回一个新的DataFrame,原DataFrame并没有被修改。

df_new = df.rename(columns={'A': 'a'}, index={'ONE': 'one'})
print(df_new)
#         a   B   C
# one    11  12  13
# TWO    21  22  23
# THREE  31  32  33

print(df)
#         A   B   C
# ONE    11  12  13
# TWO    21  22  23
# THREE  31  32  33

多个行名和列名的修改

多个行名和列名可以同时修改。只需要追加参数(字典的元素)。

print(df.rename(columns={'A': 'a', 'C': 'c'}))
#         a   B   c
# ONE    11  12  13
# TWO    21  22  23
# THREE  31  32  33

原DataFrame的修改(参数inplace)

默认的设置为原DataFrame不变,返回一个新的DataFrame。

当参数inplace为True时,原DataFrame将会被修改。返回值为None。

df_org = df.copy()
df_org.rename(columns={'A': 'a'}, index={'ONE': 'one'}, inplace=True)
print(df_org)
#         a   B   C
# one    11  12  13
# TWO    21  22  23
# THREE  31  32  33

使用lambda表达式和函数进行批处理

rename()的参数index和columns值也可以指定为函数方法。

比如,大小写的转换。

print(df.rename(columns=str.lower, index=str.title))
#         a   b   c
# One    11  12  13
# Two    21  22  23
# Three  31  32  33

lambda表达式-无名函数的指定。

print(df.rename(columns=lambda s: s*3, index=lambda s: s + '!!'))
#          AAA  BBB  CCC
# ONE!!     11   12   13
# TWO!!     21   22   23
# THREE!!   31   32   33

add_prefix(), add_suffix()

列名的接头词和结尾词的追加方法。add_prefix()和add_suffix()。

在方法的参数里指定接头词或者结尾词。

print(df.add_prefix('X_'))
#        X_A  X_B  X_C
# ONE     11   12   13
# TWO     21   22   23
# THREE   31   32   33

print(df.add_suffix('_X'))
#        A_X  B_X  C_X
# ONE     11   12   13
# TWO     21   22   23
# THREE   31   32   33

add_prefix()和add_suffix()只能对列名(columns)进行修改。想要对行名进行修改的时候,可以参照上述lambda表达式的使用方法。

index和columns元素的更新

当想要对DataFrame里全部的元素修改或更新的时候,可以使用rename()方法的参数index,columns进行指定。

可以在index,columns属性中指定List,tuple,pandas.Series等。

df.index = [1, 2, 3]
df.columns = ['a', 'b', 'c']

print(df)
#     a   b   c
# 1  11  12  13
# 2  21  22  23
# 3  31  32  33

此时,请注意,如果列表等的大小(元素数)与行数/列数不一致时,则会发生错误。

# df.index = [1, 2, 3, 4]
# ValueError: Length mismatch: Expected axis has 3 elements, new values have 4 elements

来源:https://blog.csdn.net/qq_18351157/article/details/104410294

标签:Pandas,DataFrame,行名,列名
0
投稿

猜你喜欢

  • 增强网站的魅力 网页制作技巧三则

    2007-10-04 10:06:00
  • Jenkins使用publish html report插件展示HTML报告的方法

    2022-03-31 19:30:54
  • pycharm显示远程图片的实现

    2021-03-02 13:27:39
  • Python使用pymysql模块操作mysql增删改查实例分析

    2024-01-24 03:56:48
  • MySQL数据库优化技术之索引使用技巧总结

    2024-01-21 16:24:22
  • MySQL鲜为人知的几个特殊技巧

    2009-03-09 13:22:00
  • Python搭建HTTP服务过程图解

    2023-08-08 22:11:54
  • python3+selenium实现qq邮箱登陆并发送邮件功能

    2023-02-04 17:54:23
  • 人工智能学习pyTorch自建数据集及可视化结果实现过程

    2022-08-04 14:54:33
  • JavaScript中的this指针用法

    2007-08-26 17:29:00
  • oracle常用函数汇总(分享)

    2024-01-12 17:03:56
  • 解决SQL Server的“此数据库没有有效所有者”问题

    2011-12-14 18:29:35
  • SqlServer 2005 T-SQL Query 学习笔记(1)

    2024-01-25 17:01:56
  • Python 分析Nginx访问日志并保存到MySQL数据库实例

    2024-01-22 08:43:23
  • python判断字符串的前两个字母是否是"id"的示例代码

    2021-05-02 20:39:12
  • 部署ASP.NET Core程序到Linux系统

    2024-05-02 17:19:54
  • Python字典实现简单的三级菜单(实例讲解)

    2021-07-13 12:03:32
  • 关于python中逆序的三位数

    2021-08-09 05:17:28
  • swoole_process实现进程池的方法示例

    2024-06-05 15:40:23
  • 通过numba模块给Python代码提速的方法详解

    2022-02-02 09:15:19
  • asp之家 网络编程 m.aspxhome.com