[Pandas] 缺失值删除 df.dropna()

整行整列删除

使用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

[Pandas] 缺失值删除 df.dropna()_第1张图片

res1

[Pandas] 缺失值删除 df.dropna()_第2张图片

res2

[Pandas] 缺失值删除 df.dropna()_第3张图片

以下是一些常见操作:

# 删除所有缺失值的行
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

你可能感兴趣的:(Pandas,数据分析,python,pandas)