Python polars学习-07 缺失值
背景
polars学习系列文章,第7篇 缺失值
该系列文章会分享到github,大家可以去下载jupyter文件,进行参考学习
仓库地址:https://github.com/DataShare-duo/polars_learn
小编运行环境
import sysprint('python 版本:',sys.version.split('|')[0])
#python 版本: 3.11.9import polars as plprint("polars 版本:",pl.__version__)
#polars 版本: 0.20.22
polars 中缺失值的定义
在 polars 中缺失值用 null 来表示,只有这1种表示方式,这个与 pandas 不同,在 pandas 中 NaN(NotaNumber)也代表是缺失值,但在polars中把 NaN 归属为一种浮点数据
df = pl.DataFrame({"value": [1,2,3, None,5,6,None,8,9],},
)
print(df)
#shape: (9, 1)
┌───────┐
│ value │
│ --- │
│ i64 │
╞═══════╡
│ 1 │
│ 2 │
│ 3 │
│ null │
│ 5 │
│ 6 │
│ null │
│ 8 │
│ 9 │
└───────┘
polars中缺失值包括的2种元信息
- 缺失值数量,可以通过
null_count方法来快速获取,因为已经是计算好的,所以调用该方法会立即返回结果 - 有效位图(validity bitmap),代表是否是缺失值,在内存中用 0 或 1 进行编码来表示,所占的内存空间非常小,通常占用空间为(数据框长度 / 8) bytes,通过
is_null方法来查看数据是否是缺失值
null_count_df = df.null_count()
print(null_count_df)
#shape: (1, 1)
┌───────┐
│ value │
│ --- │
│ u32 │
╞═══════╡
│ 2 │
└───────┘is_null_series = df.select(pl.col("value").is_null(),
)
print(is_null_series)
#shape: (9, 1)
┌───────┐
│ value │
│ --- │
│ bool │
╞═══════╡
│ false │
│ false │
│ false │
│ true │
│ false │
│ false │
│ true │
│ false │
│ false │
└───────┘
缺失值填充
缺失值填充主要通过 fill_null方法来处理,但是需求指定填充缺失值的方法
- 常量,比如用 0 来填充
- 填充策略,例如:向前、向后 等
- 通过表达式,比如利用其他列来填充
- 插值法
df = pl.DataFrame({"col1": [1, 2, 3],"col2": [1, None, 3],},
)
print(df)
#shape: (3, 2)
┌──────┬──────┐
│ col1 ┆ col2 │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞══════╪══════╡
│ 1 ┆ 1 │
│ 2 ┆ null │
│ 3 ┆ 3 │
└──────┴──────┘
常量填充
fill_literal_df = df.with_columns(fill=pl.col("col2").fill_null(pl.lit(2)),
)
print(fill_literal_df)
#shape: (3, 3)
┌──────┬──────┬──────┐
│ col1 ┆ col2 ┆ fill │
│ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ i64 │
╞══════╪══════╪══════╡
│ 1 ┆ 1 ┆ 1 │
│ 2 ┆ null ┆ 2 │
│ 3 ┆ 3 ┆ 3 │
└──────┴──────┴──────┘
填充策略
填充策略:{‘forward’, ‘backward’, ‘min’, ‘max’, ‘mean’, ‘zero’, ‘one’}
fill_df = df.with_columns(forward=pl.col("col2").fill_null(strategy="forward"),backward=pl.col("col2").fill_null(strategy="backward"),
)
print(fill_df)
#shape: (3, 4)
┌──────┬──────┬─────────┬──────────┐
│ col1 ┆ col2 ┆ forward ┆ backward │
│ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ i64 ┆ i64 │
╞══════╪══════╪═════════╪══════════╡
│ 1 ┆ 1 ┆ 1 ┆ 1 │
│ 2 ┆ null ┆ 1 ┆ 3 │
│ 3 ┆ 3 ┆ 3 ┆ 3 │
└──────┴──────┴─────────┴──────────┘
通过表达式
fill_median_df = df.with_columns(fill=pl.col("col2").fill_null(pl.median("col2")), #类型会转换为浮点型
)
print(fill_median_df)
#shape: (3, 3)
┌──────┬──────┬──────┐
│ col1 ┆ col2 ┆ fill │
│ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ f64 │
╞══════╪══════╪══════╡
│ 1 ┆ 1 ┆ 1.0 │
│ 2 ┆ null ┆ 2.0 │
│ 3 ┆ 3 ┆ 3.0 │
└──────┴──────┴──────┘
通过插值法
fill_interpolation_df = df.with_columns(fill=pl.col("col2").interpolate(),
)
print(fill_interpolation_df)
#shape: (3, 3)
┌──────┬──────┬──────┐
│ col1 ┆ col2 ┆ fill │
│ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ f64 │
╞══════╪══════╪══════╡
│ 1 ┆ 1 ┆ 1.0 │
│ 2 ┆ null ┆ 2.0 │
│ 3 ┆ 3 ┆ 3.0 │
└──────┴──────┴──────┘
历史相关文章
- Python polars学习-01 读取与写入文件
- Python polars学习-02 上下文与表达式
- polars学习-03 数据类型转换
- Python polars学习-04 字符串数据处理
- Python polars学习-05 包含的数据结构
- Python polars学习-06 Lazy / Eager API
以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货
相关文章:
Python polars学习-07 缺失值
背景 polars学习系列文章,第7篇 缺失值 该系列文章会分享到github,大家可以去下载jupyter文件,进行参考学习 仓库地址:https://github.com/DataShare-duo/polars_learn 小编运行环境 import sysprint(python 版本:…...
前端面试题(八)答案版
面试形式:线下面试:一面:30分钟二面:30分钟 特殊要求:内网开发自研UI组件库(无文档介绍)学习能力要求高 面试评价:题目灵活应用性较强 面试官:项目负责人前端负责人 …...
在交易中出场比入场更为重要
出场策略和交易退出机制比交易者入场的方式更为关键,它们对整体回报和结果的持续性有着更大的影响。 即使交易者入场时的条件并非最佳,良好的出场策略也能扭转局势。反之,即使交易者以近乎完美的条件入场,若出场策略管理不当&…...
【D3.js in Action 3 精译】关于本书
文章目录 本书读者本书结构与路线图本书代码liveBook 在线论坛 D3.js 项目的传统开发步骤 本书读者 这本书适用于所有渴望在数据可视化工作中获得完全创意自由的人,从定制化的经典图表到创建独特的数据可视化布局,涵盖内容广泛,应有尽有。您…...
【408考点之数据结构】二叉树的概念与实现
二叉树的概念与实现 一、二叉树的概念 二叉树是一种特殊的树结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树广泛应用于许多计算机科学领域,如表达式解析、排序、搜索算法等。 二、二叉树的性质 性质1:…...
STM32之二:时钟树
目录 1. 时钟 2. STM3时钟源(哪些可以作为时钟信号) 2.1 HSE时钟 2.1.1 高速外部时钟信号(HSE)来源 2.1.2 HSE外部晶体电路配置 2.2 HSI时钟 2.3 PLL时钟 2.4 LSE时钟 2.5 LSI时钟 3. STM32时钟(哪些系统使用时…...
第十四站:Java玫瑰金——移动开发(第二篇)
处理不同类型的网络连接和增强错误处理及用户反馈,需要我们对网络状态检查逻辑进行扩展,并在UI上给予用户适当的提示。以下是对Java代码的进一步扩充: 网络状态检查扩展:区分Wi-Fi和移动数据,并根据网络类型提供不同的…...
数据处理技术影响皮质-皮质间诱发电位的量化
摘要 皮质-皮质间诱发电位(CCEPs)是探究颅内人体电生理学中有效连接性的常用工具。与所有人体电生理学数据一样,CCEP数据极易受到噪声的影响。为了解决噪声问题,通常会对CCEP数据进行滤波和重参考,但不同的研究会采用不同的处理策略。本研究…...
ResultSet的作用和类型
ResultSet的作用: ResultSet在Java中主要用于处理和操作数据库查询结果。它是一个接口,提供了一系列方法来访问和操作数据库查询得到的结果集。具体来说,ResultSet的作用包括: 获取查询结果:通过ResultSet可以获取数…...
计算机网络:运输层 - TCP首部格式 连接的创建与释放
计算机网络:运输层 - TCP首部格式 & 连接的创建与释放 TCP首部格式源端口 目的端口序号确认号数据偏移保留控制位窗口检验和紧急指针 TCP连接创建 - 三次握手TCP传输过程TCP连接释放 - 四次挥手 TCP首部格式 TCP的首部如下: 首部的前20 byte是固定的…...
妈耶!被夸爆的零售数据分析方案在这里
在竞争激烈的零售市场中,数据分析已成为企业决胜的关键。今天,就为大家揭秘一份备受赞誉的零售数据分析方案——奥威BI零售数据分析方案,它围绕“人、货、场、供、财”五大主题,助力企业精准决策,实现业务增长。 一、人…...
AI探索:最佳落地应用场景
如果说今年的风口,那一定是 AI。不过AI像一把双刃剑,既有助益也有风险。我们将从IBM Watson的高飞与坠落,到Google Allo的黯然失色,探索AI应用中的教训。同时,瑞幸咖啡的成功故事展现了凭借策略得当的AI应用࿰…...
2024年最新机动车签字授权人考试题库。
31."简易瞬态工况法"所使用的五气分析仪的温度范图:分析系统及相关部件应在( )。 A.0-40℃ B.0-50℃ C.0-60℃ D.-10-40℃ 答案:A 32.稀释氧传感器环境空气量程检测时的读数值位于( )%vol范围之外时,应…...
软RAID
硬盘 连续空间 无法 扩容 lvm 非连续空间 可以动态扩容 raid 备份, 提高读写性能,不能扩容 raid 是磁盘的集合,按照排列组合的方法不 一,给 raid 去了不同的名字 raid0 raid1 raid5 raid10 什么是 RAID "RAID"…...
IDEA 学习之 启动“卡死”
目录 1. 断点问题2. IDEA 版本问题 1. 断点问题 部分断点涉及应用启动,会导致启动“卡死” 2. IDEA 版本问题 部分 IDEA 版本存在启动问题,本人之前遇到过(别人启动三分钟,我启动半个小时)。更换别的版本ÿ…...
豆瓣高分项目管理书籍推荐
📬豆瓣网站上有很多项目管理领域的书籍获得了较高的评分,以下是一些高分项目管理书籍的精选列表,发出来跟大家分享一下: 《项目管理知识体系指南(PMBOK指南)》 【内容简介】这本书是美国项目管理协会&…...
关于docker存储overlay2相关问题
报错如下: 报错原因:使用rm -rf 清理overlay2导致的,非正常清理。 正常清理命令如下: # 清理Docker的所有构建缓存 docker builder prune# 删除旧于24小时的所有构建缓存 docker builder prune --filter "until24h"#删…...
实现批量自动化电商数据采集|商品详情页面|店铺商品信息|订单详情数据
电商数据采集是指通过技术手段获取电商平台上的商品信息、店铺信息和订单信息等数据。这些数据可以用于市场分析、竞品分析、用户行为分析等。 商品详情页面是指电商平台上展示商品详细信息的页面,包括商品名称、价格、图片、描述、评价等信息。通过采集商品详情页…...
ES6(ECMAScript 6.0) 新特性
1 ES6 基本介绍 (1)ECMAScript 6.0(简称 ES6)是 JavaScript 语言的下一代标准, 2015 年 6 月发布。 (2)ES6 设计目标:达到 JavaScript 语言可以用来编写复杂的大型程序,成为企业级开发语言 &…...
性能工具之 JMeter 常用组件介绍(八)
文章目录 一、Jmeter命令行启动二、Jmeter脚本录制 本文主要介绍JMeter命令行启动和脚本录制功能 一、Jmeter命令行启动 Jmeter有两种运行: 一种是采用的界面模式(GUI)启动,会占用不少系统资源;另一种是命令行模式(n…...
WeChatExporter:将你的数字记忆转化为永恒的数字档案
WeChatExporter:将你的数字记忆转化为永恒的数字档案 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾有过这样的经历?深夜翻看旧手机&…...
AI写教材大揭秘:如何利用AI工具实现低查重教材创作?
谁没有遇到过编写教材框架的困扰? 谁没有遇到过编写教材框架的困扰?面对一个空白的文档,发呆半个小时,都不知道该如何开始——先讲基础概念还是直接给出案例?章节划分是依照逻辑走,还是依据课时安排&#…...
别只改fillText了!深入Chromium渲染引擎,打造更隐蔽的Canvas指纹混淆方案
深入Chromium渲染引擎:构建自然化的Canvas指纹混淆体系 Canvas指纹识别技术早已从实验室走向实际应用,成为现代Web追踪的重要手段。传统对抗方案往往停留在简单的随机偏移或文本修改层面,这种"粗暴"的修改方式很容易被高级指纹库通…...
从零部署openclaw:Docker Compose实战与避坑指南
1. 项目概述与核心价值最近在部署一个名为“openclaw”的开源项目时,我遇到了不少坑。这个项目在GitHub上的仓库是xujfcn/openclaw-deploy,从名字就能看出来,它是一个专注于部署的仓库,而不是主项目本身。我花了不少时间才搞清楚&…...
TaotokenCLI工具一键配置开发环境与团队协作
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 TaotokenCLI工具一键配置开发环境与团队协作 在团队协作开发中,统一大模型API的接入配置是一个常见痛点。每个成员手动…...
j | 禁忌 | n |孩
通过网盘分享的文件:禁 | 忌女 | 孩(日版) 链接: https://pan.baidu.com/s/1bjsnnvP2f1EiA8ySTbCAOg?pwdtqp2 提取码: tqp2...
TI SimpleLink CC26xx/CC13xx超低功耗无线平台架构解析与实战
1. 项目概述:为什么我们需要一个“超低功耗”的无线平台?如果你正在设计一个需要靠电池运行数年甚至十年的物联网设备,比如智能门锁、环境传感器或者可穿戴健康监测器,那么“功耗”这个词绝对是你每天都要面对的噩梦。传统的无线方…...
SecureCRT 9.1.0不止是安装:揭秘高级功能如会话日志、脚本自动化与安全配置最佳实践
SecureCRT 9.1.0高阶实战:从会话审计到自动化运维的全栈指南 SecureCRT早已超越基础终端工具的范畴,成为运维工程师手中的瑞士军刀。当大多数教程还在反复讲解安装步骤时,真正的高阶用户已经在用会话日志构建操作审计体系,通过脚本…...
DDrawCompat v0.6.0:终极指南,让经典游戏在现代Windows系统完美重生
DDrawCompat v0.6.0:终极指南,让经典游戏在现代Windows系统完美重生 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.…...
吴哥窟水文测试:验证古代水库管理AI的智慧
一、从古代水利到现代AI测试的跨越吴哥窟,这座位于柬埔寨的古代都城遗址,以其宏伟的寺庙建筑群闻名于世。然而,鲜为人知的是,支撑这座城市繁荣数百年的,是一套复杂而精密的水管理系统。这套建于9至13世纪的水利工程&am…...
