python列表替换元素_24_Pandas.DataFrame,Series元素值的替换(replace)
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)相关推荐
- replace函数对dataframe中的值进行替换(所有数据列中的相同值)
replace函数对dataframe中的值进行替换(所有数据列中的相同值) 目录 replace函数对dataframe中的值进行替换(所有数据列中的相同值)
- pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换
pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换 目录
- python列表中的字典如何添加键值对_在Python中将键值对添加到字典中
Python字典是键值对的无序集合.在本教程中,我们将看到如何将新的键值对添加到已经定义的字典中.以下是我们可以使用的两种方法. 将新键分配为下标 我们通过使用新键作为下标并为其分配值来向字典添加新元 ...
- python列表批量删除元素_pythonlist批量删除元素-女性时尚流行美容健康娱乐mv-ida网...
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 asp实现 批量 删除 选中的 ...
- Python 列表List - Python零基础入门教程
目录 一.Python 列表 List 简介 二.Python 列表 List 增加数据 三.Python 列表 List 删除数据 四.Python 列表 List 修改数据 五.Python 列表 ...
- Python 列表的列表
Python 列表列表是包含列表元素的 Python 列表. 我们知道 Python 列表可以包含任何类型的元素.因此,如果我们为这些元素分配 Python 列表,我们将得到一个 Python 列表列 ...
- python数据处理之0值的替换缺失值的填充
python数据处理之0值的替换和缺失值的填充 零值的替换:replace()方法里面填充的是键值对结构,注意空值必须用numpy.NaN来取而不是用字符串null data['AvgHomeValu ...
- 在Power BI中对Error值进行替换
有的时候,数据类型格式的不规范会导致对其进行数据类型设定时产生Error值.例如,由于Apr列和May列下面的数据除了数字以外,还有字母和符号信息,导致Power BI无法自动将该列的数据类型设定为小 ...
- python列表元素替换的数据结构_Python基础学习数据结构(第2讲:列表;第2讲:列表创建、添加元素、插入元素、替换元素、删除元素、其他常用方法和列表派生),第二,主讲,追加,推导,式...
列表也是一种序列结构,与元组不同,列表具有可变性,可以追加.插入.删除和替换列表中的元素. 1.创建列表 创建列表可以使用list([iterable])函数,或者用中括号[ ]将元素括起来,元素之间 ...
最新文章
- Elixir 1.2带来多项功能增强和性能提升
- Oracle闪回技术(笔记)
- 程序员诗词大赛开始了,你看过吗?
- 上市开放式基金(LOF)
- 《操作系统真象还原》-阅读笔记(中)
- c语言提示错误信息,【资料】C语言错误信息中文解释
- Atitit java播放 wav MIXER 混响器编程 目录 1.1. MIXER 混响器编程	1 1.2. 得到系统中一共有多少个混音器设备:	1 1.3. 接口摘要	1 1.4. 调节音量
- dhtmlxgantt|dhtmlx甘特图|最新版Crack
- 在html中使用rect函数,HTML canvas rect()用法及代码示例
- 线性表的链式存储-单链表,从认识到实践
- java微博模拟登陆_java 模拟登录新浪微博(通过cookie)
- win10怎么把两个盘合成一个,win10怎么把分区合并
- 微信开发总结1——关于微信企业号API,Auth验证
- 计算机二进制造价便宜,二进制计算器/换算
- 现代信息技术的特点和趋势
- Hive 随机取样-抽样查询
- Apollo入门课程04-感知
- springboot阿里云视频点播服务实现上传视频和删除功能
- 谁能告诉我微信APP营销到底怎么做?
- 判断两个链表是否交叉,并求出交叉点
热门文章
- 图-介绍(intro-Graph)
- 分享58个述职报告PPT模板,总有一款适合你
- x64 汇编跟 rax , eax ,ax ,ah ,al 的关系
- 怎么修改数据库服务器名字,修改SQL Server数据库服务器名字
- spark-sql调优
- 轮船运输推动运输的飞跃 上海交航船务秉承运输的保障
- 企业微信群机器人是什么?企微机器人如何自动发消息?
- 地中海?修电脑的?格子衫?那些对程序员的高级黑!!!
- 更易用的OceanBase|生态工具征文大赛正式开启!
- python打印皮卡丘步骤_编程作战丨如何利用python绘制可爱皮卡丘?