pandas28 update-用另一个DataFrame中的非NA值进行就地修改(补全全部实例 tcy)

2024-03-20 09:38

本文主要是介绍pandas28 update-用另一个DataFrame中的非NA值进行就地修改(补全全部实例 tcy),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

============================================================
1.函数df.update(other, join='left', overwrite=True, filter_func=None, raise_conflict=False)用途:# 用另一个DataFrame中的非NA值进行就地修改参数:# other:DataFrame,至少有一个匹配的索引/列标签;Series必设name属性# join:{'left'}仅实现左连接,保留原始对象的索引和列# overwrite =True:处理重叠键(行索引)非NA值:#     * True:覆盖原始df值#     * False:仅更新原始df中na的值# filter_func:callable(1d-array) - > boolean 1d-array#     可替换NA以外值。返回True表示值应该更新。函数参数作用于df# raise_conflict=False:为True,则会在df和other同一位置都是非na值时引发ValueError
============================================================
# 实例1.1:
df = pd.DataFrame({'A': [11, 12, 13],'B': [14, 15, 16]})
new_df = pd.DataFrame({'B': [21, 22,23],'C': [24, 25, 26]})
df.update(new_df)
dfA   B
0  11  21
1  12  22
2  13  23# 实例1.2:df长度不会增加,仅更新匹配的索引/列标签处的值。
df = pd.DataFrame({'A': ['a1', 'a2', 'a3'], 'B': ['b1', 'b2', 'b3']})
new_df = pd.DataFrame({'B': ['c1', 'c2', 'c3', 'c4', 'c5']})
df.update(new_df)
dfA   B
0  a1  c1
1  a2  c2
2  a3  c3# 实例1.3:
df = pd.DataFrame({'A': [11, 12, 13],'B': [14, 15, 16]})
new_df = pd.DataFrame({'B': ['c1', 'c2', 'c3', 'c4', 'c5']})
df.update(new_df)
dfA   B
0  11  c1
1  12  c2
2  13  c3
============================================================
# 实例2.1:对于Series,必须设置其name属性。
df = pd.DataFrame({'A': ['a1', 'a2', 'a3'], 'B': ['b1', 'b2', 'b3']})
new_column = pd.Series(['c1', 'c3'], name='B', index=[0, 2])
df.update(new_column)
dfA   B
0  a1  c1
1  a2  b2
2  a3  c3# 实例2.2:
df = pd.DataFrame({'A': ['a1', 'a2', 'a3'], 'B': ['b1', 'b2', 'b3']})
new_column = pd.Series(['c2', 'c3'], name='B', index=[1, 2])
df.update(new_column)
dfA   B
0  a1  b1
1  a2  c2
2  a3  c3
============================================================
# 实例3:如果other包含NaN,则不会更新df的值
df = pd.DataFrame({'A': [11, 12, 13],'B': [14, 15, 16]})
new_df = pd.DataFrame({'B': [24, np.nan, 26]})
df.update(new_df)
dfA     B
0  11  24.0
1  12  15.0
2  13  26.0
============================================================
# 实例4:过滤函数df>=15的值被替代
df = pd.DataFrame({'A': [11, 12, 13],'B': [14, 15, 16]})
new_df = pd.DataFrame({'B': [21, 22,23],'C': [24, 25, 26]})
df.update(new_df,filter_func=lambda  s:s>=15)
dfA   B
0  11  14
1  12  22
2  13  23
============================================================
# 实例5.1:overwrite重复行索引
df = pd.DataFrame({'A': [11, 12, 13],'B': [14, np.nan, 16]},index=[0,1,1])
new_df = pd.DataFrame({'B': [21, 22,23],'C': [24, 25, 26]})
df.update(new_df)
dfA     B
0  11  21.0
1  12  22.0
1  13  22.0# 实例5.2:df = pd.DataFrame({'A': [11, 12, 13],'B': [14, np.nan, 16]},index=[0,1,1])
new_df = pd.DataFrame({'B': [21, 22,23],'C': [24, 25, 26]})
df.update(new_df,overwrite=True)
dfA     B
0  11  21.0
1  12  22.0
1  13  22.0
============================================================
# 实例6.1:
df = pd.DataFrame({'A': [11, 12],'B': [np.nan, np.nan]})
new_df = pd.DataFrame({'B': [21, 22],'C': [24, 25]})
df.update(new_df,raise_conflict=True)
dfA     B
0  11  21.0
1  12  22.0# 实例6.2:df = pd.DataFrame({'A': [11, 12],'B': [13, np.nan]})
new_df = pd.DataFrame({'B': [21, 22],'C': [24, 25]})
df.update(new_df,raise_conflict=True)#ValueError;df和other同一位置都是非na值时引发ValueError

 

这篇关于pandas28 update-用另一个DataFrame中的非NA值进行就地修改(补全全部实例 tcy)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/829050

相关文章

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u

如何使用Spring boot的@Transactional进行事务管理

《如何使用Springboot的@Transactional进行事务管理》这篇文章介绍了SpringBoot中使用@Transactional注解进行声明式事务管理的详细信息,包括基本用法、核心配置... 目录一、前置条件二、基本用法1. 在方法上添加注解2. 在类上添加注解三、核心配置参数1. 传播行为(

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前