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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/6861.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode 382.链表随机结点

1.题目要求: 2.题目代码: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x)…

Java Development Kit (JDK) 详解

什么是 JDK? JDK 是 Java Development Kit 的缩写,是一组用于开发 Java 应用程序的软件开发工具和库的集合。JDK 包含了 Java 运行时环境(JRE)和 Java 虚拟机(JVM),以及一系列开发工具和库。 …

【5.8】指针算法-双指针验证回文串

一、题目 给定一个字符串,验证它是否是回文串, 只考虑字母和数字字符 ,可以忽略字母的大小写。 说明: 本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man , a plan , a canal : Panama " 输…

多功能 Web 应用渗透测试系统

系统简介 本项目命名为SecurityEye,是一款基于 Python-Django 的多功能 Web 应用渗透测试系统,包含漏洞检测、目录识别、端口扫描、指纹识别、域名探测、旁站探测、信息泄露检测、网站权重探测等功能。 项目功能 本系统通过旁站探测、域名探测、、域名…

libstdc++/so.6: version ‘GLIBCXX_3.4.29‘ not found (required by

matlab使用过程中提示库文件版图过低,如图 1. 网上或者其他eda的工具目录里面找一个libstdc.so.6.29文件,里面包含了glibcxx3.4.29 2. 复制文件到/usr/lib64目录下面 3. libstdc.so.6连接到新的库文件 unlink libstdc.so.6 ln -s libstdc.so.6.0.29 l…

有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 基础使用先平方&#xff0c;后排序的思想 class Solution {public int[] sortedSquares(int[] nums) {for(int i0;i<nums.length;i){nums…

flutter 专题七 Flutter面试之渲染流程

一、 简介 Flutter面试中必问的一个面试题就是渲染相关的话题。作为Google在2018年发布的一款跨平台UI框架&#xff0c;使用Dart作为其开发语言&#xff0c;底层使用Skia图形库进行视图渲染&#xff0c;渲染速度和用户体验堪比原生。 二、Flutter渲染流程 总的来说&#xff…

深入理解 TCP 的握手与挥手机制:为何握手 3 次,挥手 4 次?

在网络通信的世界里&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种非常重要的协议&#xff0c;它确保了数据在网络中的可靠传输。而 TCP 的连接建立&#xff08;握手&#xff09;和连接断开&#xff08;挥手&#xff09…

Python-数据爬取(爬虫)

在数据驱动的时代&#xff0c;Python以其强大的数据处理能力和丰富的库资源&#xff0c;成为数据爬取的首选语言。通过Python&#xff0c;你可以轻松地从网页中抓取所需的数据&#xff0c;无论是价格信息、新闻内容还是用户评论&#xff0c;都能一一收入囊中。使用requests库发…

基于51单片机水位监测控制报警仿真设计

基于51单片机水位监测控制报警仿真设计 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真4. 程序代码5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接&#xff1a; 基于51单片机水位监测控制报警仿真设计( proteus仿真程序设计报告讲解视频&#xff09; …

JavaFX在Linux aarch64上运行

1.适配Jdk Linux开发项目安装在麒麟系统&#xff0c;无法安装&#xff0c;经查询因cpu架构不同导致无法运行 https://www.oracle.com/sg/java/technologies/downloads/#java21 该链接可下载jdk21,Linux aarch64版本。 2.适配Javafx模块 替换jdk之后&#xff0c;JavaFX仍无…

3D区块多重渐变围栏

这里主要用到的就是threejs的shader&#xff0c;至于其他知识点&#xff0c;可以参考json生成3d区域 下面的主要代码&#xff1a; import * as THREE from three; import { OrbitControls } from three/addons/controls/OrbitControls.js import { EffectComposer } from th…

【NLP】使用 SpaCy、ollama 创建用于命名实体识别的合成数据集

命名实体识别 (NER) 是自然语言处理 (NLP) 中的一项重要任务&#xff0c;用于自动识别和分类文本中的实体&#xff0c;例如人物、位置、组织等。尽管它很重要&#xff0c;但手动注释大型数据集以进行 NER 既耗时又费钱。受本文 ( https://huggingface.co/blog/synthetic-data-s…

Git代码托管(三)可视化工具操作(1)

常见的可视化操作工具有 一、官方网页 如码云、gitlab&#xff0c;自带了常见的git操作。 以码云为例&#xff1a; 1、创建分支&#xff1a; 进入分支目录&#xff0c;点击 新建分支 按钮&#xff0c; 在弹出框中输入新分支名称&#xff0c;点击确定即可一键创建分支&…

STL学习-无序容器-unordered set和unorderde multiset

1.定义及初始化 #include <unordered set> #include <iostream> using namespace std; //输出s中的所有元素 template<typename T> void Show(const T& s) { for(auto&x:s) cout << x<<" ";cout << endl; } int main()…

鸿蒙(Harmony)实现滑块验证码

在Android和ios两端已经使用的滑块验证码框架还未适配鸿蒙版&#xff0c;于是需要自己去实现类似如下的滑块验证码&#xff1a; 那么实现这样的验证码主要涉及到几个内容&#xff1a; 1、自定义弹窗 2、base64图片转换 3、滑动组件与滑块的联动&#xff0c;以及横移距离转换…

《华为工作法》读书摘记

无论做什么事情&#xff0c;首先要明确的就是做事的目标。目标是引导行动的关键&#xff0c;也是证明行动所具备的价值的前提&#xff0c;所以目标管理成了企业与个人管理的重要组成部分。 很多时候&#xff0c;勤奋、努力并不意味着就一定能把工作做好&#xff0c;也并不意味…

三维测量与建模笔记 - 3.3 张正友标定法

上图中&#xff0c;提到了世界坐标系在张正友标定法中的设计&#xff0c;可以理解为将世界坐标系的原点放到了棋盘格左上角点的位置&#xff0c;并且棋盘格平面上所有点的Z为0&#xff0c;将Z规定为0的话&#xff0c;可以简化掉一个维度&#xff08;列向量r3&#xff09;。去掉…

【课程总结】day34:多模态大模型之ViT模型、CLIP模型论文阅读理解

前言 在【课程总结】day31&#xff1a;多模态大模型初步了解一文中&#xff0c;我们对多模态大模型的基本原理有了初步了解&#xff0c;本章内容将通过论文阅读理解&#xff0c;更进一步理解多模态大模型中所涉及的 Vit 架构、Transformer在视觉应用的理念以及 Clip图像与文本…

国药准字生发产品有哪些?这几款不错

头秃不知道怎么选的朋友们看这&#xff0c;基本上市面上火的育发精华我都用了个遍了&#xff0c;陆陆续续也花了有大几w了&#xff0c;都是真金白银总结出来的&#xff0c;所以必须要给掉发人分享一些真正好用的育发产品&#xff0c;大家可以根据自己实际情况来选择。 1. 露卡菲…