当前位置: 首页 > news >正文

【Pandas】pandas DataFrame update

Pandas2.2 DataFrame

Combining comparing joining merging

方法描述
DataFrame.assign(**kwargs)用于向 DataFrame 添加新列或替换现有列的方法
DataFrame.compare(other[, align_axis, …])用于比较两个 DataFrame 的差异的方法
DataFrame.join(other[, on, how, lsuffix, …])用于**将两个 DataFrame 按列合并(默认按行索引对齐)**的方法
DataFrame.merge(right[, how, on, left_on, …])用于**基于一个或多个键将两个 DataFrame 进行数据库风格的合并(join)**的方法
DataFrame.update(other[, join, overwrite, …])用于就地(in-place)更新 DataFrame 中数据的方法

pandas.DataFrame.update()

pandas.DataFrame.update() 是一个用于就地(in-place)更新 DataFrame 中数据的方法。它会根据另一个 DataFrame 或 Series 的值来更新当前 DataFrame 中的对应位置数据。

默认情况下,它不会修改原始 DataFrame 的形状(即不新增列),只更新交集部分的数据。


####📌 方法签名

DataFrame.update(other, join='left', overwrite=True, filter_func=None, errors='ignore')

🔧 参数说明:
参数说明
other要用来更新当前 DataFrame 的另一个 DataFrame 或 Series
join合并方式,默认 'left'(仅更新索引匹配的行)
overwrite是否用 other 中的值覆盖当前 DataFrame 的值,默认 True
filter_func可选函数,用于过滤哪些值可以被更新
errorsother 和当前 DataFrame 列不匹配时的行为,可选 'ignore', 'raise'

✅ 返回值
  • 无返回值,该方法直接修改原始 DataFrame(in-place)

🧪 示例代码及结果
示例 1:基本使用(默认参数)
import pandas as pddf = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]
})other = pd.DataFrame({'A': [10, 20, 30],'B': [40, 50, 60]
})# 更新 df
df.update(other)
print(df)
输出:
    A   B
0  10  40
1  20  50
2  30  60

示例 2:部分更新(只有部分列匹配)
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]
})other = pd.DataFrame({'B': [40, 50, 60],'C': [70, 80, 90]
})df.update(other)
print(df)
输出:
   A   B
0  1  40
1  2  50
2  3  60

注意:列 C 不在 df 中,因此被忽略(因为 errors='ignore'


示例 3:不覆盖某些值(使用 overwrite=False
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]
})other = pd.DataFrame({'A': [10, 20, 30],'B': [40, 50, 60]
})df.update(other, overwrite=False)
print(df)
输出:
   A  B
0  1  4
1  2  5
2  3  6

因为 overwrite=False,所以没有更新任何值。


示例 4:使用 filter_func 过滤更新条件
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]
})other = pd.DataFrame({'A': [10, 20, 30],'B': [40, 50, 60]
})# 只更新大于 20 的值
df.update(other, filter_func=lambda x: x > 20)
print(df)
输出:
    A   B
0   1   4
1  20  50
2  30  60
🧠 应用场景
场景说明
数据修复替换错误或过时的数据
增量更新将新数据合并到现有数据集中
特征工程在已有特征基础上进行局部修正
数据同步同步两个数据源之间的差异
模型预测更新用模型输出替换旧标签或预测值

⚠️ 注意事项
  • update()in-place 操作,会直接修改原 DataFrame;
  • 默认行为是只更新交集列和交集索引;
  • 若列名不匹配,默认忽略(除非设置 errors='raise');
  • 不建议用于添加新列,更适合更新已有列;
  • filter_func 需要返回布尔值,用于控制是否更新某值;

✅ 总结对比
方法是否 in-place支持列新增更适合场景
df.update()数据更新、修复
df.merge()复杂连接、SQL 式 JOIN
df.join()索引对齐拼接
assign()添加/替换列,链式调用

如果你希望就地更新 DataFrame 中的部分数据而不改变其整体结构update() 是非常实用的方法。

http://www.lryc.cn/news/574546.html

相关文章:

  • 华为云Flexus+DeepSeek征文 | 华为云MaaS平台上的智能客服Agent开发:多渠道融合应用案例
  • 《C++初阶之类和对象》【初始化列表 + 自定义类型转换 + static成员】
  • 在 centos7部署kubephere
  • TortoiseSVN 安装教程
  • prometheus+grafana+MySQL监控
  • 云原生周刊:Argo CD v3.1 正式发布
  • 工程优化——WebSocket、WSS(WebSocket Secure)和SSE(Server-Sent Events)通信对比
  • Jenkins+Jmeter+Ant接口持续集成
  • 【人工智能agent】--dify实现文档内容的自动抽取
  • 论文阅读:2025 arxiv Qwen3 Technical Report
  • 【论文阅读 | CVPRW 2023 |CSSA :基于通道切换和空间注意力的多模态目标检测】
  • 【AI时代速通QT】第三节:Linux环境中安装QT并做测试调试
  • Starrocks 低基数全局字典优化
  • 【Vue】 keep-alive缓存组件实战指南
  • Dify携手代理商奇墨科技:加快企业AI应用构建
  • FTP原理、安装部署与案例应用全面指南
  • Unity3D下的RTSP/RTMP超低延迟直播播放器实践:跨平台、高性能与VR全景支持的完整解析
  • 创建首个 Spring Boot 登录项目
  • DD3118S:USB3.0+Type-c双头TF/SD二合一高速0TG多功能手机读卡器ic
  • 76、单元测试-参数化测试
  • 做上门私厨/上门做饭App小程序,到底是定制开发,还是选成品系统?
  • 随机森林详解:原理、优势与应用实践
  • 【空间数据分析】全局莫兰指数(Global Moran’s I)
  • 《C++》命名空间简述
  • 项目练习:使用itextpdf制作pdf报表
  • 电商场景BI解决方案:用观远BI捕获电商大促增长先机
  • (3)ROS2:6-dof前馈+PD / 阻抗控制器
  • 常见网络知识,宽带、路由器
  • UAVAI-YOLO:无人机航拍图像的小目标检测模型
  • NLP基础1_word-embedding