python学习——缺失值、重复值处理、排序及替换

news/2024/5/19 21:31:41/

文章目录

  • 1 缺失值处理
    • 1.1 查看缺失值 df.isnull()
    • 1.2 统计缺失值 df.isnull().sum()
    • 1.3 删除缺失值 df.drop()
    • 1.4 填充缺失值 df.fillna()
      • 1.4.1 固定值填充 df.fillna(value)
      • 1.4.2 线性插值填充 df.fillna(df.interpolate())
  • 2 重复值处理
    • 2.1 查看重复值 df.duplicated()
    • 2.2 筛选重复值 df[df.duplicated()]
    • 2.3 删除重复值 df.drop_duplicates()
  • 3 排序
    • 3.1 按照索引排序 df.sort_index
    • 3.2 按照值进行排序 df.sort_values
    • 3.3 数值型数据快速排序 df.nlargest
  • 4 替换 df.replace

1 缺失值处理

1.1 查看缺失值 df.isnull()

df.isnull() #将空值转换为真
df.notnull() #空值转换为假

在这里插入图片描述

配合上面的功能,使用掩码提取对应数据

df[df.column名.isnull()]
df[df.column名.notnull()]

在这里插入图片描述

1.2 统计缺失值 df.isnull().sum()

df.isnull().sum()

在这里插入图片描述

1.3 删除缺失值 df.drop()

axis0: 删除行数据1: 删除列数据
subset: 参数表示删除时只考虑的索引或列名
thresh: 当数据有效值超过thresh参数值的时候,则数据会予以保留,否则会被删除

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

1.4 填充缺失值 df.fillna()

1.4.1 固定值填充 df.fillna(value)

  1. value: 固定值填充
  2. method
  • ffill #用上面最近的一个非空值填充
  • bfill #用下面最近的一个非空值填充
  • df.fillna(method=“bfill”,limit=2,axis=1) #限制轴信息
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

1.4.2 线性插值填充 df.fillna(df.interpolate())

用上面非空值的线性插值填充数据

df.fillna(df.interpolate())

2 重复值处理

2.1 查看重复值 df.duplicated()

在这里插入图片描述在这里插入图片描述

2.2 筛选重复值 df[df.duplicated()]

在这里插入图片描述

2.3 删除重复值 df.drop_duplicates()

默认保留位置靠前的数据行,可以通过keep来决定两行数据完全相同保留后面的还是前面的。
在这里插入图片描述
在这里插入图片描述

3 排序

dataFrame进行排序时,可以按照索引排序,也可以按照值进行排序。

3.1 按照索引排序 df.sort_index

df.sort_index()  #按照索引进行排序,默认升序排序,axis决定按照行索引还是列索引
ascending=False  #降序
df.reset_index()  #重置索引,把原来的索引列转化成一个普通列,行索引用位置信息做索引名

二维列表排序
在这里插入图片描述在这里插入图片描述

3.2 按照值进行排序 df.sort_values

df.sort_values(by = '列名') #按照某一列进行排序
df.sort_values(by =[ '列名','列名'],ascending=[False,True])

在这里插入图片描述

3.3 数值型数据快速排序 df.nlargest

df.列名.nlargest() #默认取前五个,先排序,取前五名
df.nlargest(5,'列名')
df.列名.nsmallest() #默认取后五个,先排序,取后五名
df.nsmallest(5,'列名')

在这里插入图片描述

4 替换 df.replace

df.replace('xxm','小明',inplace = True) #inplace为True时,原地替换

在这里插入图片描述


http://www.ppmy.cn/news/48136.html

相关文章

docker简单教程(三)常用操作

docker简单教程(三)常用操作 文章目录 docker简单教程(三)常用操作1:查看所有容器列表:docker ps -a2:查看正在运行的容器列表:docker ps3:运行容器:docker r…

测牛学堂:2023软件测试linux和shell脚本入门系列(shell的运算符)

shell中的注释 以# 开头的就是shell中的注释,不会被执行,是给编程的人看的。 shell中的运算符 shell中有很多运算符。 按照分类,可以分为算术运算符,关系运算符,布尔运算符,字符串运算符,文件…

把树莓派改造成无线软路由器(2)-----无线路由器模式(独立无线路由器)

本文目录 1、准备工作2、安装无线AP和管理软件3、设置网络路由3.1、树莓派的无线网络接口IP配置3.2、启用路由和IP伪装3.3、为无线网络配置DHCP和DNS服务 4、确认无线配置5、配置 AP 软件6、运行wifi无线AP 树莓派可用作网络中的一个wifi无线路由器。让使用无线接入的计算机和设…

sqlserver用SQL脚本进行备份和还原操作

--1.1备份数据库脚本 USE [master] GO BACKUP DATABASE [Test] TO DISK D:\Test\Test_20230419.bak GO --1.2还原数据库,注意一定要用NORECOVERY还原备份 USE [master] GO RESTORE DATABASE [Test] FROM DISKND:\Test\Test_20230419.bak WITH FILE 1, MOVE NTest TO ND:\Test…

后缀数组的应用:最长公共子串

题目描述 假设 str1 长度为 N N N,str2 长度为 M M M,求 str1 和 str2 的最长公共子串。 思路分析 示例:str1 “12abcd456”, str2 “7abcd89”,则str1和str2的最长公共子串为 abcd。 注意,子串是连续的。 动…

C. Anna, Svyatoslav and Maps(floyd + 思维)

Problem - C - Codeforces 给你一个有n个顶点的无权图&#xff0c;以及由m个顶点的序列p1,p2,...,pm给出的路径&#xff08;该路径不一定简单&#xff09;&#xff1b;对于每个1≤i<m&#xff0c;有一个弧从pi到pi1。 如果v是p的子序列&#xff0c;v1p1&#xff0c;vkpm&a…

JavaScript有几种数据类型,分别是什么?

在JavaScript中&#xff0c;我们可以分成两种类型&#xff1a;基本类型 复杂类型&#xff08;引用类型&#xff09; 两种类型的区别是&#xff1a;存储位置不同 基本类型主要为以下六种&#xff1a; Number、String、Boolean、Undefined、Null、Symbol 复杂类型/引用类型统称为…

C++ const关键字

参考资料&#xff1a; 【C const的各种用法详解】【const用法深入浅出】 - COS - 博客园 (cnblogs.com) const的基本概念&#xff1a; const名叫常量限定符&#xff0c;用来限定特定变量&#xff0c;以通知编译器该变量是不可修改的。习惯性的使用const&#xff0c;可以避免在函…

PostgreSQL环境搭建和主备构建

目录 1 Windows 上安装 PostgreSQL2 docker安装PostgreSQL2.1 检索当前镜像2.2. 拉取当前镜像2.3 创建挂载文件夹2.4 启动镜像2.5 查看日志2.7 查看进程2.8 使用连接 3 postgresql主从主备搭建3.1 安装好网络源&#xff08;主1.11、从1.12&#xff09;3.2 安装postgresql&#…

Python OpenCV 3.x 示例:1~5

原文&#xff1a;OpenCV 3.x with Python By Example 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 计算机视觉 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 当别人说你没有底线的时候&#xff0c;你最…

一定要会的算法复杂度分析

本文首发自「慕课网」&#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注"慕课网"&#xff01; 原作者&#xff1a;s09g|慕课网讲师 我们知道面对同一道问题时可能有多种解决方案。自然地&#xff0c;我们会将多种方法进行比较。那么…

同样是测试,朋友到了30k,我才12K,这份测试面试8股文确实牛

程序猿在世人眼里已经成为高薪、为人忠诚的代名词。 然而&#xff0c;小编要说的是&#xff0c;不是所有的程序员工资都是一样的。 世人所不知的是同为程序猿&#xff0c;薪资的差别还是很大的。 众所周知&#xff0c;目前互联网行业是众多行业中薪资待遇最好的&#xff0c;…

Leetcode33.搜索旋转排列数组

搜索旋转排列数组 一、题目描述&#xff1a;二、解决思路和代码1. 解决思路2. 代码 一、题目描述&#xff1a; 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length…

【Unity VR开发】结合VRTK4.0:添加遮蔽追踪器

语录&#xff1a; 恋爱应该是双方扶持对方共同完成自己的目标&#xff0c;而不是虚幻的思想、肤浅的物质、和纸醉金迷的生活。 前言&#xff1a; 遮蔽追踪器&#xff08;Trackers.ObscuranceTracker&#xff09;是基于游戏对象存在或不可见之间切换对象的状态&#xff0c;从而遮…

Ajax超详解(新手入门指南)

文章目录 1. AJAX简介2. 前后端交互3. XHR3.1 XMLHttpRequest对象3.2 获取模拟的后端数据3.3 获取网络数据3.4 使用json-server模拟服务器3.4.1 安装node.js3.4.2 安装并使用json-server 3.5 常见的请求方式3.5.1 GET请求3.5.2 POST请求3.5.3 PUT请求3.5.4 PATCH请求3.5.5 DELE…

面试题30天打卡-day10

1、String 和 StringBuffer、StringBuilder 的区别是什么&#xff1f; String、StringBuffer、StringBuilder主要的区别在于执行效率和线程安全上。 String&#xff1a;String字符串常量&#xff0c;意味着它是不可变的&#xff0c;导致每次对String都会生成新的String对象&a…

网络工程师经常搞混的路由策略和策略路由,两者到底有啥区别?

当涉及到网络路由时&#xff0c;两个术语经常被混淆&#xff1a;策略路由和路由策略。虽然这些术语听起来很相似&#xff0c;但它们实际上有着不同的含义和用途。在本文中&#xff0c;我们将详细介绍这两个术语的区别和应用。 一、路由策略 路由策略是指一组规则&#xff0c;用…

十大排序算法之插入排序、希尔排序、选择排序

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【数据结构初阶&#xff08;C实现&#xff09;】 本篇主要讲解八大排序算法中的三种排序&#xff0c;分别是&#xff1a;插入排序、希尔排…

高并发的程序设计-系统设计层面

高并发的程序设计-系统设计层面 目录概述需求&#xff1a; 设计思路实现思路分析1.主要指标二、处理高并发的方案 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better …

【C++类和对象】类和对象(上) {初识面向对象,类的引入,类的定义,类的访问限定符,封装,类的作用域,类的实例化,类对象模型,this指针}

一、面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完成。…