假设拿到一个10万行的数据后,通过isnull我们发现某列有几个空值,要把该列空值所在行删除怎么操作?用dropna()会删除所有有空值的行,请看下面实例。

python filter删除空行 python删除有空值的行_空字符串


python filter删除空行 python删除有空值的行_缺失值_02


区分 None,null,NULL,nan, “null”, " “, “”, ‘’, , b’’, u”" 1.Python 中 None 是 NoneType, 没有长度, 表示空值, 布尔值为False, 即 None.bool() == False 2. null 和 NULL 表示数据库中的空值, python中不存在这两者。 3.在pandas 中 NaN 是缺失值的意思。 NaN 在python 中 导入用 from numpy import nan 或者 from numpy import NaN, 类型用 type() 判断为 float, 值可以用math.isnan(),numpy.isnan(),pandas.isna(), pandas.isnull()判断。在python3.7 中NaN和None都可以是float类型,都可以和数值做加法运算。 3. “null” 表示长度为4,由字母null组成的字符串 4. “” 和’’ 都表示空字符串,长度为0 5. " “表示长度为1的空格字符 6. 反引号在linux 命令中可以传递变量的值,`` 在linux中表示空变量

7. b’’ 表示 bytes 字节编码空字符串

8. u”" 表示unicode 类型空字符串

附图中代码在python3.7 中运行

python filter删除空行 python删除有空值的行_python_03


python filter删除空行 python删除有空值的行_python filter删除空行_04

Python之pandas:pandas中缺失值与空值处理的简介及常用函数(dropna()、isna()、isnull()、fillna())

python filter删除空行 python删除有空值的行_python_05


pandas中缺失值与空值处理的简介

python filter删除空行 python删除有空值的行_python_06

data_df['col01'].isnull() 
data_df[data_df['col02'].notnull()] 
data_df['col01'].fillna(value=0) 
data_df['col01'].dropna() 
 
 
data_df.set_index(['time', 'user'], inplace=True) 
data_df.sort_index(inplace=True)

1、缺失值统计并缺失率可视化

#统计缺失字段的缺失率
from DataScience.DataVisualize_Functions import NullValueCountAndPlot,NullValueCountRatio_AndPlot
NullValueCountAndPlot('',data_X)
NullValueCountRatio_AndPlot('',data_X)

dropna()、isna()、isnull()、fillna()使用案例

import pandas as pd
import numpy as np
 
contents={"name": ['Bob',        'LiSa',                     'Mary',                       'Alan'],
          "ID":   [1,              2,                           3,                           None],   # 输出 NaN
          "age":  [np.nan,        28,                           38 ,                          '' ],   # 输出 
          "born": [pd.NaT,     pd.Timestamp("1990-01-01"),  pd.Timestamp("1980-01-01"),        ''],   # 输出 NaT
          "sex":  ['男',          '女',                        '女',                        None,],   # 输出 None
          "hobbey":['打篮球',     '打羽毛球',                   '打乒乓球',                    '',],   # 输出 
          }
data_frame = pd.DataFrame(contents)
data_frame.to_excel("data_Frame.xls")
print(data_frame)
 
 
#dropna 函数:自动删除空值(np.nan、pd.Na、'')所在行的数据
data_frame_temp=data_frame
res01= data_frame_temp.dropna()
print('dropna():','\n',res01)
 
#  去掉包含缺失值的任何一行
data_frame_temp.dropna(how='any')      #表示去掉所有包含缺失值的行
 
 
#isna 函数:
res01=data_frame.isna()
print('isna():','\n',res01)
 
 
#isnull 函数:
res01= data_frame.isnull()
print('isnull():','\n',res01)
 
 
#fillna 函数:用0填充
res01= data_frame.fillna(0)
print('fillna():','\n',res01)

python filter删除空行 python删除有空值的行_缺失值_07


pandas中缺失值与空值处理的常用函数(dropna()、fillna()、isnull()、isna())

python filter删除空行 python删除有空值的行_缺失值_08


1、dropna() 删除缺失值

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)[source]

python filter删除空行 python删除有空值的行_缺失值_09


python filter删除空行 python删除有空值的行_缺失值_10

python filter删除空行 python删除有空值的行_空字符串_11


python filter删除空行 python删除有空值的行_缺失值_12


2、isna()显示缺失值、notna() #isna的布尔逆

python filter删除空行 python删除有空值的行_缺失值_13


3、isnull() 检测缺失值

python filter删除空行 python删除有空值的行_空字符串_14


4、fillna() 填充缺失值

python filter删除空行 python删除有空值的行_python_15


python filter删除空行 python删除有空值的行_缺失值_16


python filter删除空行 python删除有空值的行_python_17


20201215

python filter删除空行 python删除有空值的行_python filter删除空行_18


csv里面是空值 读出来就是这样

df.dropna() 可以删除带有nan值的任意行

python filter删除空行 python删除有空值的行_缺失值_19


左边的空值对应 右边的表现形式

df.dropna() 不能删除上述形式的空值

python filter删除空行 python删除有空值的行_python filter删除空行_20


df!=’’ 可以直接找出所有的‘’的空值 或者 按列查找出对应的行索引

python filter删除空行 python删除有空值的行_缺失值_21


isnull() 只能找出对应 nan 的空值 ‘’ 这种不能找出