pandas || df.dropna() 缺失值删除操作

df.dropna()函数用于删除dataframe数据中的缺失数据,即 删除NaN数据.

官方函数说明:

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
 Remove missing values.
 See the User Guide for more on which values are considered missing,
 and how to work with missing data.
Returns
 DataFrame
 DataFrame with NA entries dropped from it.

参数说明:

Parameters 说明
axis 0为行 1为列,default 0,数据删除维度
how {‘any', ‘all'}, default ‘any',any:删除带有nan的行;all:删除全为nan的行
thresh int,保留至少 int 个非nan行
subset list,在特定列缺失值处理
inplace bool,是否修改源文件

测试:

>>>df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
          "toy": [np.nan, 'Batmobile', 'Bullwhip'],
          "born": [pd.NaT, pd.Timestamp("1940-04-25"),
              pd.NaT]})
>>>df
    name    toy    born
0  Alfred    NaN    NaT
1  Batman Batmobile 1940-04-25
2 Catwoman  Bullwhip    NaT

删除至少缺少一个元素的行:

>>>df.dropna()
   name    toy    born
1 Batman Batmobile 1940-04-25

删除至少缺少一个元素的列:

>>>df.dropna(axis=1)
    name
0  Alfred
1  Batman
2 Catwoman

删除所有元素丢失的行:

>>>df.dropna(how='all')
    name    toy    born
0  Alfred    NaN    NaT
1  Batman Batmobile 1940-04-25
2 Catwoman  Bullwhip    NaT

只保留至少2个非NA值的行:

>>>df.dropna(thresh=2)
    name    toy    born
1  Batman Batmobile 1940-04-25
2 Catwoman  Bullwhip    NaT

从特定列中查找缺少的值:

>>>df.dropna(subset=['name', 'born'])
    name    toy    born
1  Batman Batmobile 1940-04-25

修改原数据:

>>>df.dropna(inplace=True)
>>>df
   name    toy    born
1 Batman Batmobile 1940-04-25

以上。

补充: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: float64
0  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")

代码结果:

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

传入thresh=n保留至少有n个非NaN数据的行:

df1.dropna(thresh=1)

代码结果:

0 1 2 3
0 1.0 2.0 3.0 NaN
1 NaN NaN 2.0 NaN
3 8.0 8.0 NaN NaN
df1.dropna(thresh=3)

代码结果:

0 1 2 3
0 1.0 2.0 3.0 NaN

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 简单了解Pandas缺失值处理方法

    这篇文章主要介绍了简单了解Pandas缺失值处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 判断数据是否为NaN: pd.isnull(df), pd.notnull(df) 判断缺失值是否存在 np.all(pd.notnull(data)) # 返回false代表有空值 np.any(pd.isnull(data)) #返回true代表有空值 处理方式: 存在缺失值nan,并且是np.nan: 1.删除缺失值:dropna(axis

  • Pandas缺失值2种处理方式代码实例

    处理方式: 存在缺失值nan,并且是np.nan: 删除存在缺失值的:dropna(axis='rows') 替换缺失值:fillna(df[].mean(), inplace=True) 不是缺失值nan,有默认标记的 1.存在缺失值nan,并且是np.nan # 判断数据是否为NaN # pd.isnull(df),pd.notnull(df),pd.isna(df) # 读取数据 movie = pd.read_csv("./date/IMDB-Movie-Data.csv")

  • pandas中read_csv的缺失值处理方式

    今天遇到的问题是,要将一份csv数据读入dataframe,但某些列中含有NA值.对于这些列来说,NA应该作为一个有意义的level,而不是缺失值,但read_csv函数会自动将类似的缺失值理解为缺失值并变为NaN. 看pandas文档中read_csv函数中这两个参数的描述,默认会将'-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A N/A','#N/A', 'N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', '

  • 详解Pandas 处理缺失值指令大全

    前言 运用pandas 库对所得到的数据进行数据清洗,复习一下相关的知识. 1 数据清洗 1.1 处理缺失数据 对于数值型数据,分为缺失值(NAN)和非缺失值,对于缺失值的检测,可以通过Python中pandas库的Series类对象的isnull方法进行检测. import pandas as pd import numpy as np string_data = pd.Series(['Benzema', 'Messi', np.nan, 'Ronaldo']) string_data.is

  • pandas 缺失值与空值处理的实现方法

    1.相关函数 df.dropna() df.fillna() df.isnull() df.isna() 2.相关概念 空值:在pandas中的空值是"" 缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可 3.函数具体解释 DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) 函数作用:删除含有空值的行或列 axis:维度,axis=

  • pandas || df.dropna() 缺失值删除操作

    df.dropna()函数用于删除dataframe数据中的缺失数据,即 删除NaN数据. 官方函数说明: DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) Remove missing values. See the User Guide for more on which values are considered missing, and how to work with missing

  • Pandas缺失值删除df.dropna()的使用

    函数参数 函数形式:dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False) 参数: axis:0或’index’,表示按行删除:1或’columns’,表示按列删除. how:‘any’,表示该行/列只要有一个以上的空值,就删除该行/列:‘all’,表示该行/列全部都为空值,就删除该行/列. thresh:int型,默认为None.如果该行/列中,非空元素数量小于这个值,就删除该行/列. subset:子集.列表,按c

  • pandas重复行删除操作df.drop_duplicates和df.duplicated的区别

    目录 概念 df.duplicated() df.dropduplicates(’col‘,keep=‘first’,inplace=False) 实例 概念 df.duplicated() 使用df.cuplicated()来查看重复数据,返回True,False,数据类型是bool. 也可以指定某一列是否有重复值df.cuplidated(‘colname’),不指定则默认为第一列. df.dropduplicates(’col‘,keep=‘first’,inplace=False) 用来

  • Python Pandas 对列/行进行选择,增加,删除操作

    一.列操作 1.1 选择列 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])} df = pd.DataFrame(d) print (df ['one']) # 选择其中一列进行显示,列长度为最长列的长度 # 除了 index 和 数据,还会显示 列表头名,和 数据 类型 运行结果: a    1.0 b   

  • Python数据分析之 Pandas Dataframe修改和删除及查询操作

    目录 一.查询操作 元素的查询 二.修改操作 行列索引的修改 元素值的修改 三.行和列的删除操作 一.查询操作 可以使用Dataframe的index属性和columns属性获取行.列索引. import pandas as pd data = {"name": ["Alice", "Bob", "Cindy", "David"], "age": [25, 23, 28, 24], &q

  • pandas中NaN缺失值的处理方法

    本文主要介绍了pandas中NaN缺失值的处理方法,主要有两种方法,具体如下: import pandas as pd 缺失值处理 两种方法: 删除含有缺失值的样本 替换/插补 处理缺失值为NaN 先判断数据中是否存在NaN,通过下面两个方法中任意一个 pd.isnull(dataframe) # dataframe为数据 如果数据中存在NaN返回True,如果没有就返回False pd.notnull(dataframe) 该方法与isnull相反 any() 和 all() ""&

  • python pandas中DataFrame类型数据操作函数的方法

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数据及属性 df_obj = DataFrame() #创建DataFrame对象 df_obj.dtypes #查看各行的数据格式 df_obj['列名'].astype(int)#转换某列的数据类型 df_obj.head() #查看前几行的数据,默认前5行 df_obj.tail() #查看后几

  • python 检查数据中是否有缺失值,删除缺失值的方式

    # 检查数据中是否有缺失值 np.isnan(train).any() Flase:表示对应特征的特征值中无缺失值 True:表示有缺失值 通常情况下删除行,使用参数axis = 0,删除列的参数axis = 1,通常不会这么做,那样会删除一个变量. print(df.dropna(axis = 0)) 以上这篇python 检查数据中是否有缺失值,删除缺失值的方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python Pandas知识点之缺失值处理详解

    前言 数据处理过程中,经常会遇到数据有缺失值的情况,本文介绍如何用Pandas处理数据中的缺失值. 一.什么是缺失值 对数据而言,缺失值分为两种,一种是Pandas中的空值,另一种是自定义的缺失值. 1. Pandas中的空值有三个:np.nan (Not a Number) . None 和 pd.NaT(时间格式的空值,注意大小写不能错),这三个值可以用Pandas中的函数isnull(),notnull(),isna()进行判断. isnull()和notnull()的结果互为取反,isn

  • Pandas中DataFrame数据删除详情

    目录 1.根据默认的行列索引操作 1.1行删除 1.2列删除 2.根据自定义的行列索引操作 2.1行删除 2.2列删除 本文介绍Pandas中DataFrame数据删除,主要使用drop.del方式. # drop函数的参数解释 drop( self, labels=None, # 就是要删除的行列的标签,用列表给定; axis=0, # axis是指处哪一个轴,0为行(默认),1为列; index=None, # index是指某一行或者多行 columns=None, # columns是指

随机推荐