pandas检查和填充缺失值的N种方法总结

目录
  • 一、构建示例数据
  • 二、检查缺失值的n种方法
    • 2.1 确认是否有缺失值的两种方法
    • 2.2 查看缺失数目和缺失率
    • 2.3 查看非缺失值数目
  • 三、缺失值填充三种示例

一、构建示例数据

import pandas as pd
import numpy as np
data = {"ID":[202001, 202002, 202003, 202004, 202005, 202006, 202007, 202008, 202009, 202010],
       "Chinese":[98, 67, 84, 88, 78, 90, 93, np.nan, 82, 87],
       "Math":[92, 80, 73, np.nan, 88, 78, 90, 82, 77, 69],
       "English":[88, 79, 90, 73, 79, 83, 81, np.nan, 71, np.nan]
       }
df = pd.DataFrame(data)
df

二、检查缺失值的n种方法

2.1 确认是否有缺失值的两种方法

df.isnull().values.any()

True

df.isnull().sum().any()

True

2.2 查看缺失数目和缺失率

df.isnull().sum()

all_data_na = (df.isnull().sum()/len(df))*100
all_data_na = all_data_na.drop(all_data_na[all_data_na == 0].index).sort_values(ascending=False)
missing_data = pd.DataFrame({'缺失率' : all_data_na})
missing_data

2.3 查看非缺失值数目

df.info()

df.shape[0] - df.isnull().sum()

df.notnull().sum()

三、缺失值填充三种示例

# 用上下平均值填充English
df['English'] = df['English'].fillna(df['English'].interpolate())
df.head(10)

# 用中位数填充value列:
df['Math'] = df['Math'].fillna(df['Math'].median())
df.head(10)

# 用-1填充Chinese列:
df['Chinese'] = df['Chinese'].fillna(-1)
df.head(10)

到此这篇关于pandas检查和填充缺失值的N种方法总结的文章就介绍到这了,更多相关pandas检查和填充缺失值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 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处理缺失值方法详解(dropna、drop、fillna)

    目录 面对缺失值三种处理方法: 对于option1: 对于option 2: 对于option3 总结 面对缺失值三种处理方法: option 1: 去掉含有缺失值的样本(行) option 2:将含有缺失值的列(特征向量)去掉 option 3:将缺失值用某些值填充(0,平均值,中值等) 对于dropna和fillna,dataframe和series都有,在这主要讲datafame的 对于option1: 使用DataFrame.dropna(axis=0, how='any', thres

  • pandas如何处理缺失值

    在实际应用中对于数据进行分析的时候,经常能看见缺失值,下面来介绍一下如何利用pandas来处理缺失值.常见的缺失值处理方式有,过滤.填充. 一.缺失值的判断 pandas使用浮点值NaN(Not a Number)表示浮点数和非浮点数组中的缺失值,同时python内置None值也会被当作是缺失值. a.Series的缺失值判断 s = Series(["a","b",np.nan,"c",None]) print(s) ''' 0 a 1 b 2

  • 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=

  • Python Pandas中缺失值NaN的判断,删除及替换

    目录 前言 1. 检查缺失值NaN 2. Pandas中NaN的类型 3. NaN的删除 dropna() 3.1 删除所有值均缺失的行/列 3.2 删除至少包含一个缺失值的行/列 3.3 根据不缺少值的元素数量删除行/列 3.4 删除特定行/列中缺少值的列/行 4. 缺失值NaN的替换(填充) fillna() 4.1 用通用值统一替换 4.2 为每列替换不同的值 4.3 用每列的平均值,中位数,众数等替换 4.4 替换为上一个或下一个值 总结 前言 当使用pandas读取csv文件时,如果元

  • 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 使用均值填充缺失值列的小技巧分享

    pd.DataFrame中通常含有许多特征,有时候需要对每个含有缺失值的列,都用均值进行填充,代码实现可以这样: for column in list(df.columns[df.isnull().sum() > 0]): mean_val = df[column].mean() df[column].fillna(mean_val, inplace=True) # -------代码分解------- # 判断哪些列有缺失值,得到series对象 df.isnull().sum() > 0

  • Python Pandas找到缺失值的位置方法

    问题描述: python pandas判断缺失值一般采用 isnull(),然而生成的却是所有数据的true/false矩阵,对于庞大的数据dataframe,很难一眼看出来哪个数据缺失,一共有多少个缺失数据,缺失数据的位置. 首先对于存在缺失值的数据,如下所示 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(10,6)) # Make a few areas have NaN values df.

  • Python Pandas对缺失值的处理方法

    Pandas使用这些函数处理缺失值: isnull和notnull:检测是否是空值,可用于df和series dropna:丢弃.删除缺失值 axis : 删除行还是列,{0 or 'index', 1 or 'columns'}, default 0 how : 如果等于any则任何值为空都删除,如果等于all则所有值都为空才删除 inplace : 如果为True则修改当前df,否则返回新的df fillna:填充空值 value:用于填充的值,可以是单个值,或者字典(key是列名,valu

  • python解决pandas处理缺失值为空字符串的问题

    踩坑记录: 用pandas来做csv的缺失值处理时候发现奇怪BUG,就是excel打开csv文件,明明有的格子没有任何东西,当然,我就想到用pandas的dropna()或者fillna()来处理缺失值. 但是pandas读取csv文件后发现那个空的地方isnull()竟然是false,就是说那个地方有东西... 后来经过排查发现看似什么都没有的地方有空字符串,故pandas认为那儿不是缺失值,所以就不能用dropna()或者fillna()来处理. 解决思路:先用正则将空格匹配出来,然后全部替

随机推荐