Pandas之Dropna滤除缺失数据的实现方法
作者:yungeisme 发布时间:2022-03-30 03:29:42
标签:Pandas,Dropna,缺失数据
约定:
import pandas as pd
import numpy as np
from numpy import nan as NaN
滤除缺失数据
pandas的设计目标之一就是使得处理缺失数据的任务更加轻松些。pandas使用NaN作为缺失数据的标记。
使用dropna使得滤除缺失数据更加得心应手。
一、处理Series对象
通过**dropna()**滤除缺失数据:
se1=pd.Series([4,NaN,8,NaN,5])
print(se1)
se1.dropna()
代码结果:
0 4.0
1 NaN
2 8.0
3 NaN
4 5.0
dtype: float640 4.0
2 8.0
4 5.0
dtype: float64
通过布尔序列也能滤除:
se1[se1.notnull()]
代码结果:
0 4.0
2 8.0
4 5.0
dtype: float64
二、处理DataFrame对象
处理DataFrame对象比较复杂,因为你可能需要丢弃所有的NaN或部分NaN。
df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]])
df1
代码结果:
0 | 1 | 2 | |
---|---|---|---|
0 | 1.0 | 2.0 | 3.0 |
1 | NaN | NaN | 2.0 |
2 | NaN | NaN | NaN |
3 | 8.0 | 8.0 | NaN |
默认滤除所有包含NaN:
df1.dropna()
代码结果:
0 | 1 | 2 | |
---|---|---|---|
0 | 1.0 | 2.0 | 3.0 |
传入**how=‘all'**滤除全为NaN的行:
df1.dropna(how='all')
代码结果:
0 | 1 | 2 | |
---|---|---|---|
0 | 1.0 | 2.0 | 3.0 |
1 | NaN | NaN | 2.0 |
3 | 8.0 | 8.0 | NaN |
传入axis=1滤除列:
df1[3]=NaN
df1
代码结果:
0 | 1 | 2 | 3 | |
---|---|---|---|---|
0 | 1.0 | 2.0 | 3.0 | NaN |
1 | NaN | NaN | 2.0 | NaN |
2 | NaN | NaN | NaN | NaN |
3 | 8.0 | 8.0 | NaN | NaN |
df1.dropna(axis=1,how="all")
代码结果:
传入thresh=n保留至少有n个非NaN数据的行:
df1.dropna(thresh=1)
df1.dropna(thresh=3)
代码结果:
0 | 1 | 2 | |
---|---|---|---|
0 | 1.0 | 2.0 | 3.0 |
1 | NaN | NaN | 2.0 |
2 | NaN | NaN | NaN |
3 | 8.0 | 8.0 | NaN |
来源:https://blog.csdn.net/weixin_38168620/article/details/79596798


猜你喜欢
- pandas获取csv指定行,列house_info = pd.read_csv('house_info.csv')1:取行
- 1. __init__ 初始化文件路径,关键字1,关键字2;2. key_match 使用with open 方法,以二进制方式(也可以改成
- 前言在前几篇博客中,分别就棋子的颜色识别、模板匹配等定位方式进行了介绍和实践,这一篇博客就来验证一下github中最热门的跳一跳 * 中采用的
- 下面直接上代码留存,方便以后查阅复用。# -*- coding: utf-8 -*- #作者:LeniyTsan#时间:2014-07-17
- 给一个例子 :# -*- coding: utf-8 -*-import matplotlib.pyplot as plt im
- python实现的五子棋,能够自动判断输赢,没有是实现电脑对战功能源码下载:pygame五子棋# 1、引入pygame 和 pygame.l
- 1、运用re、json、jsonpath包解析json思路(1)re:正则表达式,通过json的形式对症下药,写表达式去解析json;(2)
- 我就废话不多说了,大家还是直接看代码吧!# -*- coding: utf-8 -*-"""Created o
- 前言Python提供了多个内置模块用于操作日期时间,像 calendar,time,datetime。time模块提供的接口与C标准库 ti
- 一、LeetCode——125.验证回文串1.问题描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:
- 下面步骤展示的是如何经过VirtualBox管理器,使得pycharm和ubuntu中的项目环境连接对应起来!如果你有属于自己的服务器,核心
- 本文实例讲述了php字符串函数 str类常见用法。分享给大家供大家参考,具体如下:str_split(string, leg);//将一个字
- 如何用ASP输出HTML文件?<!--#include file="top.inc"--><
- 之前有个程序,里面有个时间部分是按照国内时区,也就是东八区,来写的,程序中定义了北京时间2点到八点进行检查;后面程序在国外机器上,例如说韩国
- 事实上,互联网用户浏览网页的习惯和顾客浏览商店中物品的习惯没有多大差别。用户打开一个新的页面,扫视一些文字,并点击第一个引起他兴趣的链接。在
- 看了一段时间关于js原型的知识,js的扩展方法是基于原型的,如Array.prototype.XXXX就是给Array扩展XXX方法,然后数
- 这一版,对虹软的功能进行了一些封装,添加了人脸特征比对,比对结果保存到文件,和从文件提取特征进行比对,大体功能基本都已经实现,可以进行下一步
- 一、如果是刚刚删除,那么有两方法:首先用show parameter undo;命令查看当时的数据库参数undo_retention设置。显
- 装饰器装饰器的定义关于装饰器的定义,我们先来看一段github上大佬的定义:Function decorators are simply w
- 最近一直在“深山老林”中修炼“支付宝新版收银台”,经历了白板设计,视觉设计,前端开发,前后端联调各个阶段。点点滴滴……重点谈谈对交互设计的感