24_Pandas.DataFrame,Series元素值的替换(replace)

要替换pandas.DataFrame,pandas.Series元素的值,请使用replace()方法。

这里,将描述以下内容。

替换元素

一次替换多个不同的元素

在字典中指定

在列表中指定

注意点

通过指定目标列进行替换

用正则表达式替换

替换缺失值NaN

变更原始项目

以下面的数据为例。一些元素的值已更改以作说明。

import pandas as pd

df = pd.read_csv('./data/24/sample_pandas_normal.csv')

df.iloc[1, 3] = 24

print(df)

# name age state point

# 0 Alice 24 NY 64

# 1 Bob 42 CA 24

# 2 Charlie 18 CA 70

# 3 Dave 68 TX 70

# 4 Ellen 24 CA 88

# 5 Frank 30 NY 57

该示例为pandas.DataFrame,但pandas.Series相同。

替换元素

在第一个参数中指定原始元素的值,在第二个参数中指定替换后的值。

print(df.replace('CA', 'California'))

# name age state point

# 0 Alice 24 NY 64

# 1 Bob 42 California 24

# 2 Charlie 18 California 70

# 3 Dave 68 TX 70

# 4 Ellen 24 California 88

# 5 Frank 30 NY 57

包括所有列元素。如果您只想替换特定列的值,请参见下文。

print(df.replace(24, 100))

# name age state point

# 0 Alice 100 NY 64

# 1 Bob 42 CA 100

# 2 Charlie 18 CA 70

# 3 Dave 68 TX 70

# 4 Ellen 100 CA 88

# 5 Frank 30 NY 57

默认情况下,将返回带有替换元素的新DataFrame,但是如果参数inplace = True,则将更改原始DataFrame。最后,我将介绍一个示例。

一次替换多个不同的元素

如果要一次替换多个不同的元素,则可以使用字典或列表。

在字典中指定

在第一个参数中指定{原始值:替换后的值}的字典。

print(df.replace({'CA': 'California', 24: 100}))

# name age state point

# 0 Alice 100 NY 64

# 1 Bob 42 California 100

# 2 Charlie 18 California 70

# 3 Dave 68 TX 70

# 4 Ellen 100 California 88

# 5 Frank 30 NY 57

在列表中指定

在第一个参数中指定原始值列表,在第二个参数中指定替换值列表。如果列表的大小(元素数)不匹配,则会发生错误。

print(df.replace(['CA', 24], ['California', 100]))

# name age state point

# 0 Alice 100 NY 64

# 1 Bob 42 California 100

# 2 Charlie 18 California 70

# 3 Dave 68 TX 70

# 4 Ellen 100 California 88

# 5 Frank 30 NY 57

# print(df.replace(['CA', 24, 'NY'], ['California', 100]))

# ValueError: Replacement lists must match in length. Expecting 3 got 2

如果将标量值指定为第二个参数,则所有元素都将替换为该值。

print(df.replace(['CA', 24], 'XXX'))

# name age state point

# 0 Alice XXX NY 64

# 1 Bob 42 XXX XXX

# 2 Charlie 18 XXX 70

# 3 Dave 68 TX 70

# 4 Ellen XXX XXX 88

# 5 Frank 30 NY 57

注意点

注意多个替换对之间的原始值和替换值是否相同。由于值是按顺序替换的,因此替换的值会进一步替换。结果取决于顺序。

字典示例。

print(df.replace({'CA': 'NY', 'NY': 'XXX'}))

# name age state point

# 0 Alice 24 XXX 64

# 1 Bob 42 XXX 24

# 2 Charlie 18 XXX 70

# 3 Dave 68 TX 70

# 4 Ellen 24 XXX 88

# 5 Frank 30 XXX 57

print(df.replace({'NY': 'XXX', 'CA': 'NY'}))

# name age state point

# 0 Alice 24 XXX 64

# 1 Bob 42 NY 24

# 2 Charlie 18 NY 70

# 3 Dave 68 TX 70

# 4 Ellen 24 NY 88

# 5 Frank 30 XXX 57

字典的顺序在Python 3.7之后得以保留,但在早期版本中未定义。它并不总是看起来像上面的结果。如果要明确指定顺序,请重复调用replace()。

print(df.replace({'NY': 'XXX'}).replace({'CA': 'NY'}))

# name age state point

# 0 Alice 24 XXX 64

# 1 Bob 42 NY 24

# 2 Charlie 18 NY 70

# 3 Dave 68 TX 70

# 4 Ellen 24 NY 88

# 5 Frank 30 XXX 57

在列表中,第一个元素将首先被替换。当顺序很重要时,使用列表比使用字典更容易。

print(df.replace(['CA', 'NY'], ['NY', 'XXX']))

# name age state point

# 0 Alice 24 XXX 64

# 1 Bob 42 XXX 24

# 2 Charlie 18 XXX 70

# 3 Dave 68 TX 70

# 4 Ellen 24 XXX 88

# 5 Frank 30 XXX 57

print(df.replace(['NY', 'CA'], ['XXX', 'NY']))

# name age state point

# 0 Alice 24 XXX 64

# 1 Bob 42 NY 24

# 2 Charlie 18 NY 70

# 3 Dave 68 TX 70

# 4 Ellen 24 NY 88

# 5 Frank 30 XXX 57

通过指定目标列进行替换

通过将{列名称:{原始值:替换后的值}}的字典指定为第一个参数,只能替换目标列的元素。您可以通过增加字典元素的数量来一次替换多个列和多个值。

print(df.replace({'age': {24: 100}}))

# name age state point

# 0 Alice 100 NY 64

# 1 Bob 42 CA 24

# 2 Charlie 18 CA 70

# 3 Dave 68 TX 70

# 4 Ellen 100 CA 88

# 5 Frank 30 NY 57

print(df.replace({'age': {24: 100, 18: 0}, 'point': {24: 50}}))

# name age state point

# 0 Alice 100 NY 64

# 1 Bob 42 CA 50

# 2 Charlie 0 CA 70

# 3 Dave 68 TX 70

# 4 Ellen 100 CA 88

# 5 Frank 30 NY 57

无法在列表中指定原始值和替换后的值。

# print(df.replace({'age': [[24, 18], [100, 0]], 'point': {24: 50}}))

# TypeError: If a nested mapping is passed, all values of the top level mapping must be mappings

如果要用相同的值替换所有值,请在第一个参数中指定{column name:original value}字典,并在替换后的第二个参数中以标量值指定值。可以将第一个参数的原始值指定为列表。

print(df.replace({'age': 24, 'point': 70}, 100))

# name age state point

# 0 Alice 100 NY 64

# 1 Bob 42 CA 24

# 2 Charlie 18 CA 100

# 3 Dave 68 TX 100

# 4 Ellen 100 CA 88

# 5 Frank 30 NY 57

print(df.replace({'age': [24, 18], 'point': 70}, 100))

# name age state point

# 0 Alice 100 NY 64

# 1 Bob 42 CA 24

# 2 Charlie 100 CA 100

# 3 Dave 68 TX 100

# 4 Ellen 100 CA 88

# 5 Frank 30 NY 57

用正则表达式替换

正则表达式可以与参数regex = True一起使用。

例如,默认情况下,仅在元素值完全匹配时才替换元素值,因此即使它们部分匹配,也不会替换它们。

print(df.replace('li', 'LI'))

# name age state point

# 0 Alice 24 NY 64

# 1 Bob 42 CA 24

# 2 Charlie 18 CA 70

# 3 Dave 68 TX 70

# 4 Ellen 24 CA 88

# 5 Frank 30 NY 57

例如,如果要替换元素的部分字符串,则使用参数regex = True将其设置为正则表达式。

()中包含的部分可以在替换后按顺序用作组,例如\ 1和\ 2。

print(df.replace('(.*)li(.*)', r'\1LI\2', regex=True))

# name age state point

# 0 ALIce 24 NY 64

# 1 Bob 42 CA 24

# 2 CharLIe 18 CA 70

# 3 Dave 68 TX 70

# 4 Ellen 24 CA 88

# 5 Frank 30 NY 57

当regex = True时,将正则表达式模式指定为第一个参数,将替换后的字符串指定为第二个参数。

如果要替换特定列元素的一部分字符串,也可以使用字符串方法str.replace()。

df['name'] = df['name'].str.replace('li', 'LI')

print(df)

# name age state point

# 0 ALIce 24 NY 64

# 1 Bob 42 CA 24

# 2 CharLIe 18 CA 70

# 3 Dave 68 TX 70

# 4 Ellen 24 CA 88

# 5 Frank 30 NY 57

详情请参阅以下文章

13_Pandas字符串的替换和空格处删除等方法

替换缺失值NaN

提供了一种名为fillna()的方法来替换缺失值NaN。

尽管可以使用replace(),但fillna()可以根据行或列替换不同的值。

详情请参阅以下文章

05_Pandas删除,替换并提取其中的缺失值NaN

变更原始项目

默认情况下,将返回带有替换元素的新DataFrame,但是如果参数inplace = True,则将更改原始DataFrame。

df = pd.read_csv('./data/24/sample_pandas_normal.csv')

print(df)

# name age state point

# 0 Alice 24 NY 64

# 1 Bob 42 CA 92

# 2 Charlie 18 CA 70

# 3 Dave 68 TX 70

# 4 Ellen 24 CA 88

# 5 Frank 30 NY 57

df.replace('CA', 'California', inplace=True)

print(df)

# name age state point

# 0 Alice 24 NY 64

# 1 Bob 42 California 92

# 2 Charlie 18 California 70

# 3 Dave 68 TX 70

# 4 Ellen 24 California 88

# 5 Frank 30 NY 57

python列表替换元素_24_Pandas.DataFrame,Series元素值的替换(replace)相关推荐

  1. replace函数对dataframe中的值进行替换(所有数据列中的相同值)

    replace函数对dataframe中的值进行替换(所有数据列中的相同值) 目录 replace函数对dataframe中的值进行替换(所有数据列中的相同值)

  2. pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换

    pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换 目录

  3. python列表中的字典如何添加键值对_在Python中将键值对添加到字典中

    Python字典是键值对的无序集合.在本教程中,我们将看到如何将新的键值对添加到已经定义的字典中.以下是我们可以使用的两种方法. 将新键分配为下标 我们通过使用新键作为下标并为其分配值来向字典添加新元 ...

  4. python列表批量删除元素_pythonlist批量删除元素-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页  > 高级搜索 asp实现 批量 删除 选中的 ...

  5. Python 列表List - Python零基础入门教程

    目录 一.Python 列表 List 简介 二.Python 列表 List 增加数据 三.Python 列表 List 删除数据 四.Python 列表 List 修改数据 五.Python 列表 ...

  6. Python 列表的列表

    Python 列表列表是包含列表元素的 Python 列表. 我们知道 Python 列表可以包含任何类型的元素.因此,如果我们为这些元素分配 Python 列表,我们将得到一个 Python 列表列 ...

  7. python数据处理之0值的替换缺失值的填充

    python数据处理之0值的替换和缺失值的填充 零值的替换:replace()方法里面填充的是键值对结构,注意空值必须用numpy.NaN来取而不是用字符串null data['AvgHomeValu ...

  8. 在Power BI中对Error值进行替换

    有的时候,数据类型格式的不规范会导致对其进行数据类型设定时产生Error值.例如,由于Apr列和May列下面的数据除了数字以外,还有字母和符号信息,导致Power BI无法自动将该列的数据类型设定为小 ...

  9. python列表元素替换的数据结构_Python基础学习数据结构(第2讲:列表;第2讲:列表创建、添加元素、插入元素、替换元素、删除元素、其他常用方法和列表派生),第二,主讲,追加,推导,式...

    列表也是一种序列结构,与元组不同,列表具有可变性,可以追加.插入.删除和替换列表中的元素. 1.创建列表 创建列表可以使用list([iterable])函数,或者用中括号[ ]将元素括起来,元素之间 ...

最新文章

  1. Elixir 1.2带来多项功能增强和性能提升
  2. Oracle闪回技术(笔记)
  3. 程序员诗词大赛开始了,你看过吗?
  4. 上市开放式基金(LOF)
  5. 《操作系统真象还原》-阅读笔记(中)
  6. c语言提示错误信息,【资料】C语言错误信息中文解释
  7. Atitit java播放 wav MIXER 混响器编程 目录 1.1. MIXER 混响器编程 1 1.2. 得到系统中一共有多少个混音器设备: 1 1.3. 接口摘要 1 1.4. 调节音量
  8. dhtmlxgantt|dhtmlx甘特图|最新版Crack
  9. 在html中使用rect函数,HTML canvas rect()用法及代码示例
  10. 线性表的链式存储-单链表,从认识到实践
  11. java微博模拟登陆_java 模拟登录新浪微博(通过cookie)
  12. win10怎么把两个盘合成一个,win10怎么把分区合并
  13. 微信开发总结1——关于微信企业号API,Auth验证
  14. 计算机二进制造价便宜,二进制计算器/换算
  15. 现代信息技术的特点和趋势
  16. Hive 随机取样-抽样查询
  17. Apollo入门课程04-感知
  18. springboot阿里云视频点播服务实现上传视频和删除功能
  19. 谁能告诉我微信APP营销到底怎么做?
  20. 判断两个链表是否交叉,并求出交叉点

热门文章

  1. 图-介绍(intro-Graph)
  2. 分享58个述职报告PPT模板,总有一款适合你
  3. x64 汇编跟 rax , eax ,ax ,ah ,al 的关系
  4. 怎么修改数据库服务器名字,修改SQL Server数据库服务器名字
  5. spark-sql调优
  6. 轮船运输推动运输的飞跃 上海交航船务秉承运输的保障
  7. 企业微信群机器人是什么?企微机器人如何自动发消息?
  8. 地中海?修电脑的?格子衫?那些对程序员的高级黑!!!
  9. 更易用的OceanBase|生态工具征文大赛正式开启!
  10. python打印皮卡丘步骤_编程作战丨如何利用python绘制可爱皮卡丘?