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

Pandas | 理性判断数据是否存在缺失值的一种方法

理性判断

    • 一般思路
    • 进一步思考
      • df['B'].explode()

一般思路

tcc.info()

在这里插入图片描述

上述信息info显示没有缺失值 但是真实的情况还是要根据业务实际分析
tcc.isnull().sum() # 和tcc.info()

在这里插入图片描述
作用和tcc.info() 其实是一样的

进一步思考

在此过程中,我们需要检验是否存在采用别的值来表亓缺失值的情况。就像此前所说我们通过isnull只能检验出None(Python/原生对象)和np.Nan(numpy/pandasi在读取数据文件时文件内部缺失对象的读取后表示形式)对象。
但此外我们还需要注意数据集中是否包含采用某符号表示缺失值的情况,例如某些时候可能使用空格(其本质也是一种字符)来代替空格:

df= pd.DataFrame({'A':['Y',None,'N','N'],'B':[np.NaN,'','Y','N']})
df

在这里插入图片描述

df.isnull()

在这里插入图片描述

但根据实际情况来看,空格可能确实是代表着数据采集时数据是缺失的,因此我们仍然需要将其识别然后标记为缺失值,此时可以通过比较数据集各列的取值水平是否和既定的一致来进行检查。例如,对于上述d数据集来说,特征A和B默认情况只有Y和N两种取值,而B列由于通过空格表示了缺失值,因此用nuniquei查看数据集的话,B列将出现3种取值:

df.nunique()

在这里插入图片描述

| 注意,缺失值None或NaN并不是某一种取值

此时我们可以进一步查看B列每个不同取值出现的次数:

df['B'].explode().value_counts().to_dict()

{‘’: 1, ‘Y’: 1, ‘N’: 1}

df[‘B’].explode()

pandas 中,explode() 函数用于将 DataFrameSeries 中的列表、元组、集合或字典类型的元素展开成多行。如果列中的元素是列表或类似的可迭代对象,explode() 会将这些元素分解成单独的行,每个元素占据一行,从而增加行数。

例如,假设你有一个 DataFrame df,其中包含一个名为 ‘B’ 的列,该列包含列表:

import pandas as pd# 示例 DataFrame
df = pd.DataFrame({'A': [1, 2, 3],'B': [[1, 2, 3], [4, 5], [6]]
})print("原始 DataFrame:")
print(df)

输出将是:

   A       B
0  1  [1, 2, 3]
1  2     [4, 5]
2  3      [6]

如果你对这个 ‘B’ 列使用 explode() 方法,每个列表中的元素将被展开成单独的行:

# 使用 explode() 展开 'B' 列
df_exploded = df['B'].explode().reset_index(drop=True)print("\n展开后的 DataFrame:")
print(df_exploded)

输出将是:

0    1
1    2
2    3
3    4
4    5
5    6

注意,explode() 默认返回的是一个 Series,如果你想要将其转换回 DataFrame,可以使用 reset_index(drop=True) 来重置索引并丢弃原来的索引。

explode() 方法不会修改原始的 DataFrame,它返回一个新的 DataFrameSeries。如果你想要直接在原始 DataFrame 上进行操作,可以使用 assign() 方法或者直接将结果赋值回原来的 DataFrame

相关文章:

Pandas | 理性判断数据是否存在缺失值的一种方法

理性判断 一般思路进一步思考df[B].explode() 一般思路 tcc.info()上述信息info显示没有缺失值 但是真实的情况还是要根据业务实际分析tcc.isnull().sum() # 和tcc.info()作用和tcc.info() 其实是一样的 进一步思考 在此过程中,我们需要检验是否存在采用别的值来表…...

ENSP (虚拟路由冗余协议)VRRP配置

VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种用于提高网络可用性和可靠性的协议。它通过在多个路由器之间共享一个虚拟IP地址,确保即使一台路由器发生故障,网络依然能够正常运行,防止…...

move_base

move_base 官方介绍:http://wiki.ros.org/move_base 如果在仿真环境下, sensor source、odometry source 和 sensor transforms 都已提供好,我们只需要完成以下部分: 一、编写导航程序 ①创建 ROS 工作空间 和 pkg 包 mkdir -p …...

Android Intent 跳转常见系统设置

常量值描述android.settings.DATA_ROAMING_SETTINGS显示 2G/3G 选择的设置android.settings.SETTINGS显示系统设置android.settings.WIFI_SETTINGS显示设置以允许配置 Wi-Fiandroid.intent.action.POWER_USAGE_SUMMARY显示电池 … 更多GO 官网...

[复健计划][紫书]Chapter 7 暴力求解法

7.1 简单枚举 例7-1 Division uva725 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij n的表达式,其中a~j恰好为数字0~9的一个排列(可以有前导0),2≤n≤79。枚举fghij,验证a…...

基于SpringBoot的社区讯息服务小程序【附源码】

基于SpringBoot的社区讯息服务小程序 效果如下: 系统登陆页面 管理员主页面 用户管理页面 社区活动管理页面 设施报修管理页面 缴费信息管理页面 用户主页面 用户登录页面 社区活动页面 研究背景 随着移动互联网技术的飞速发展,社区生活日益依赖于数字…...

springboot图书管理系统(一个简单的单体架构项目,适合小白)

期末作业 为了水一水期末作业,打算写一个简易的单体架构图书管理系统。以下为后端主要技术栈(后期可能更新,打算一个星期左右写完吧)。 springbootredismysqlspringcachespringsecurity … 数据库设计 第一次从0开始搭建后续可能还会多更新一些表。 -- 角…...

《CLR via C#》读书笔记--CLR的执行模型

将源代码编译成托管模块将托管模块合并成程序集加载公共语言运行时执行程序集的代码本机代码生成器:NGen.exeFramework 类库入门通用类型系统公共语言规范(CLS)与非托管代码的互操作性 将源代码编译程托管模块 公共语言运行时(Co…...

Javascript常见数据结构及其应用场景

Basic 以下是对JavaScript中常见数据结构及其应用场景的详细扩展: 数组(Array) 定义与特性:数组是由一组按顺序排列的值组成,每个值都有一个对应的索引(下标),可以通过索引访问和修…...

简单的签到程序 python笔记

简单的人脸识别签到程序 在看完以下代码后,略微修改一番,你就能够组装出自己的“简单的人脸识别签到程序”了。 请注意库的安装,否则会不可用。 你可以通过在cmd中使用:pip install来安装。 以下代码运行python 3.8 UI界面 使…...

30天如何成功转行成为AI产品经理?如果你也想转行到AI,赶紧进来抄作业!!!

前言 随着AI技术的快速发展,AI产品经理成为了备受瞩目的职业。如果您也想抓住这个机遇,不妨跟随这份30天快速入门指南,开始您的AI产品经理转型之旅。 一、学习路线 第一阶段(5天):初阶应用 该阶段让大家…...

基于Python+Vue开发的蛋糕商城管理系统

项目简介 该项目是基于PythonVue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的蛋糕商…...

WSL开发--利用Git连接远程仓库(详细步骤)

这篇文章主要介绍了如何将本地项目推送到 GitLab 上,并且避免每次提交都需要输入用户名和密码。文中分步讲解了配置 GitLab SSH 密钥以及配置 Git 远程仓库地址的方法。以下是文章的优化和简洁版: 将本地项目推送到 GitLab 并配置 SSH 免密登录 为了方便…...

VLAN高级+以太网安全

VLAN聚合 MUX VLAN QinQ 以下是这三种VLAN技术的作用及其在项目中的应用实例: VLAN聚合 (VLAN Aggregation) VLAN聚合通常用于将多个VLAN数据聚合到一个物理链路上,以减少链路数量、提高链路利用率。这样可以在一个物理链路上同时传输不同VLAN的数据包&…...

R7:糖尿病预测模型优化探索

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、实验目的: 探索本案例是否还有进一步优化的空间 二、实验环境: 语言环境:python 3.8编译器:Jupyter notebo…...

Spring核心:探索IoC容器与依赖注入的奥秘

目录 一、什么是Spring? 二、什么是 Ioc ? 2.1 控制反转的实现方式 2.1.1 依赖注入 2.1.2 依赖查找 2.1.3 优点分析 2.2 理解 Ioc 一、什么是Spring? 我们通常所说的 Spring 指的是 Spring Framework(Spring 框架&#xff…...

15分钟学 Go 实践项目二:打造博客系统

打造博客系统 项目概述 在本项目中,我们将创建一个简单的博客系统,重点实现CRUD(创建、读取、更新、删除)操作和用户管理。这个博客系统将使用户能够发布文章,评论,并管理其个人账户信息。 目标 实现用…...

Follow软件的使用入门教程

开篇 看到很多兄弟还不知道怎么用这个当下爆火的浏览器!在这里简单给需要入门的小伙伴一些建议: 介绍 简单解释一下,RSS 意思是简易信息聚合,用户可以通过 RSS 阅读器或聚合工具自主订阅并浏览各个平台的内容源,不用…...

【IC验证】systemverilog的设计特性

systemverilog的设计特性 一.概述二.面向硬件的过程语句块1.说明2.always_comb2.always_latch3.always_ff 三.关系运算符1.说明2.例子 四.inside判定符1.说明2.例子 五.条件分支语句(1)说明(2)例子(case和unique case的…...

【点击劫持漏洞(附测试代码)】

漏洞描述 点击劫持(Clickjacking)是一种网络攻击技术,攻击者通过将一个恶意的页面或按钮隐藏在合法网站的页面下,诱使用户在不知情的情况下点击隐藏的内容,从而触发攻击者设计的操作。这种攻击通常会导致用户无意中执…...

【AD】3-4 在原理图中放置元件

1.打开原理图库,选中元件点击放置 2.点击工程右键,选择,,进行编译,点击Components,选中鼠标点击拖动即可...

协程2 --- 相关概念

文章目录 协程切换方案协程库的完善程度协程栈方案协程调度实现有栈协程与无栈协程对称协程与非对称协程 协程切换方案 具体使用和解析看栈切换那个博客 使用setjump、longjump c语言提供的方案 可参考:libmill 使用操作系统提供的api:ucontext、fiber …...

Hadoop-005-HDFS分布式文件存储原理

一、HDFS数据如何存储 分布式存储:每个服务器(节点)存储文件的一部分, 本文提到的part只是为方便理解, 指的文件部分数据, 并不是真实存在的概念 #mermaid-svg-qjJMG6r2bzRNcWkF {font-family:"trebuchet ms",verdana,arial,sans-s…...

【多线程入门篇】 创建线程以及线程的属性

大家好呀 我是浪前 今天给大家讲解的是创建线程以及线程的属性 祝愿所有点赞关注的人,身体健康,一夜暴富,升职加薪迎娶白富美!!! 点我领取迎娶白富美大礼包 🍓多线程编程: 前言: 我们为什么不用多进程?…...

三十四、Python基础语法(文件操作-上)

一、介绍 文件:可以储存在长期储存设备上的一段数据,在计算机储存的数据都是二进制的形式储存的,我们用软件打开文件不是看见0和1是因为软件会自动将二进制数据进行转换。 二、文件操作 1.打开文件 打开文件:文件是在硬盘中储…...

【大咖云集,院士出席 | ACM独立出版】第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024,11月15-17日)--冬季主会场

第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024)--冬季主会场 2024 4th International Conference on Big Data, Artificial Intelligence and Risk Management 官方信息 会议官网:www.icbar.net 2024 4th International Conference on Big Data, Art…...

03 Oracle进程秘籍:深度解析Oracle后台进程体系

文章目录 Oracle进程秘籍:深度解析Oracle后台进程体系一、Oracle后台进程概览1.1 DBWn(Database Writer Process)1.2 LGWR(Log Writer Process)1.3 SMON(System Monitor Process)1.4 PMON&#…...

AndroidStudio通过Bundle进行数据传递

作者:CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境:AndroidStudio 目录 1.新建活动 2.修改页面布局 代码: 效果: 3.新建类ResultActivity并继承AppCompatActivity 4.新建布局文件activity_result.xml 代…...

Linux篇(文件管理命令)

目录 一、Linux下文件命名规则 1. 可以使用哪些字符 2. 文件名的长度 3. 文件名的大小写 4. Linux文件扩展名 二、目录创建与删除 1. 目录创建 1.1. mkdir创建目录 1.2. mkdir -p 递归创建目录 1.3. 使用mkdir同时创建多个目录 2. 目录删除(必须是空目录&…...

大数据新视界 -- 大数据大厂之 Impala 性能优化:数据存储分区的艺术与实践(下)(2/30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...