脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Pandas.DataFrame的行名和列名的修改

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

2023-02-26 14:36饺子大人 Python

本文主要介绍了Pandas.DataFrame的行名和列名的修改,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

rename()

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

add_prefix(), add_suffix()

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

index和columns元素的更新

  • 行名和列名全部修改

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

rename()

  • 多个行名和列名的修改
  • 原DataFrame的修改(参数inplace)
  • 使用lambda表达式和函数进行批处理

add_prefix(), add_suffix()

index和columns元素的更新

首先,先生成一个DaraFrame。

?
1
2
3
4
5
6
7
8
9
10
11
12
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并没有被修改。

?
1
2
3
4
5
6
7
8
9
10
11
12
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

多个行名和列名的修改

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

?
1
2
3
4
5
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。

?
1
2
3
4
5
6
7
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值也可以指定为函数方法。

比如,大小写的转换。

?
1
2
3
4
5
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表达式-无名函数的指定。

?
1
2
3
4
5
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()。

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

?
1
2
3
4
5
6
7
8
9
10
11
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等。

?
1
2
3
4
5
6
7
8
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

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

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

到此这篇关于Pandas.DataFrame的行名和列名的修改的文章就介绍到这了,更多相关Pandas.DataFrame行名和列名修改内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_18351157/article/details/104410294

延伸 · 阅读

精彩推荐
  • PythonPython通过90行代码搭建一个音乐搜索工具

    Python通过90行代码搭建一个音乐搜索工具

    这篇文章主要介绍了Python通过90行代码搭建一个音乐搜索工具,需要的朋友可以参考下...

    Python代码网2372020-07-28
  • Python在Python的Django框架中创建语言文件

    在Python的Django框架中创建语言文件

    这篇文章主要介绍了在Python的Django框架中创建语言文件的方法,以语言代码来表示语言区域种类,需要的朋友可以参考下...

    Python教程网2612020-07-27
  • Pythonpython追加元素到列表的方法

    python追加元素到列表的方法

    这篇文章主要介绍了python追加元素到列表的方法,涉及Python列表操作中append方法追加元素的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    pythoner5082020-07-27
  • Pythonpython删除特定文件的方法

    python删除特定文件的方法

    这篇文章主要介绍了python删除特定文件的方法,涉及Python文件查找及删除的相关技巧,需要的朋友可以参考下...

    技术芝麻点2372020-07-28
  • PythonPython3 中把txt数据文件读入到矩阵中的方法

    Python3 中把txt数据文件读入到矩阵中的方法

    下面小编就为大家分享一篇Python3 中把txt数据文件读入到矩阵中的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    ZJE_ANDY10912021-02-07
  • PythonPython虚拟环境virtualenv的安装与使用详解

    Python虚拟环境virtualenv的安装与使用详解

    virtualenv可以用来管理互不干扰的独立python虚拟环境,在有些场景下非常有用,下面这篇文章主要给大家介绍了Python虚拟环境virtualenv安装与使用的相关资料...

    FOOFISH4532020-11-13
  • PythonPython爬取动态网页中图片的完整实例

    Python爬取动态网页中图片的完整实例

    这篇文章主要给大家介绍了关于Python爬取动态网页中图片的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值...

    割韭菜的喵酱9152021-09-17
  • Pythonpython爬虫系列网络请求案例详解

    python爬虫系列网络请求案例详解

    这篇文章主要介绍了【Python从零到壹】python爬虫系列-网络请求,从零开始学习Python网络爬虫,如何从中获取需要的数据信息,现整理出零基础如何学爬虫技...

    互联网老辛5572021-10-06