一、介绍
pd.dropna()
函数主要用于删除缺失数据。
Series
返回一个仅包含非空数据和索引的Series
,默认丢弃含有缺失值的行DataFrame
可以通过参数更详细的删除行数据
使用语法:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
参数解释:
axis=0 删除含有缺失值的行 axis=1 删除列
how=all、any all表示删除全是缺失值的行、any表示任意一个缺失值
thresh=n 表示保留至少含有n个非缺失值的行
subset 定义查找的列
inplace 是否在原始数据框中修改数据
二、实操
0.构建测试数据集
import pandas as pd
import numpy as np
df = pd.DataFrame({'Name':['A','B','C'],
'Toy':[np.nan, 'Bat','Bull'],
'Born':[pd.NaT, pd.Timestamp('1992-12-12'), pd.NaT]})
'''
Name Toy Born
0 A NaN NaT
1 B Bat 1992-12-12
2 C Bull NaT
'''
1.axis 删除行列
axis=0
或者 axis='index'
表示删除含有缺失值的行
axis=1
或者 axis='columns'
表示删除含有缺失值的列
# 默认删除
df.dropna()
# 按列删除
df.dropna(axis=1)
2.how 删除方式
how='all'
表示删除全是缺失值的行(列)how='any'
表示删除只要有任意一个缺失值的行(列)
df.dropna(how='all') # 无变化
df.dropna(how='any') # 任意一个
3.thresh=n 保留至少含有n个非NA值
df.dropna(thresh=2)
'''
Name Toy Born
1 B Bat 1992-12-12
2 C Bull NaT
'''
4.subset 定义列
df.dropna(subset=['Name','Born'])
5.inplace 修改原始数据框
参考链接:pandas之dropna()
参考链接:pandas中dropna()参数详解