学无先后,达者为师

网站首页 编程语言 正文

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

作者:山茶花开时。   更新时间: 2022-09-16 编程语言

函数参数

函数形式:dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)

参数:

  • axis:0或’index’,表示按行删除;1或’columns’,表示按列删除。
  • how:‘any’,表示该行/列只要有一个以上的空值,就删除该行/列;‘all’,表示该行/列全部都为空值,就删除该行/列。
  • thresh:int型,默认为None。如果该行/列中,非空元素数量小于这个值,就删除该行/列。
  • subset:子集。列表,按columns所在的列(或index所在的行)删除。
  • inplace:是否原地替换调原来的dataframe。布尔值,默认为False。

整行整列删除

使用df.dropna()方法删除缺失值

import pandas as pd
import numpy as np 
 
# 原数据
df = pd.DataFrame({'A':['a1','a1','a2','a2'],
                'B':['b1','b2',None,'b2'],
                'C':[1,2,3,4],
                'D':[5,6,None,8],
                'E':[5,None,7,8]
                 })
 
# 删除有缺失值的行
res1 = df.dropna()
 
# 删除有缺失值的列
res2 = df.dropna(1)

结果展示

df

res1

res2

以下是一些常见操作:

# 删除所有缺失值的行
df.dropna()
 
# 删除所有缺失值的列
df.dropna(axis = 'columns')
df.dropna(axis = 1)
 
# how参数 {‘any', ‘all'}, default ‘any',any:删除带有nan的行;all:删除全为nan的行
# 删除所有值都缺失的行
df.dropna(how = 'all')
 
# 删除至少有两个缺失值的行
df.dropna(thresh = 2)
 
# 指定判断缺失值的列范围
df.dropna(subset = ['B','D'])
 
# 使删除的结果生效
df.dropna(inplace = True)
 
# 指定列的缺失值删除
df.col.dropna()
 

需要注意的是,df.dropna()操作不能替换原来的数据。若需要替换,可以重新赋值或者传入参数inplace = True

原文链接:https://blog.csdn.net/Hudas/article/details/122924791

栏目分类
最近更新