整行整列删除
使用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