pandas || df.dropna() 缺失值删除

df.dropna()函数用于删除dataframe数据中的缺失数据,即 删除NaN数据.

官方函数说明:

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
	Remove missing values.

	See the User Guide for more on which values are considered missing, 
	and how to work with missing data.

Returns
	DataFrame
	DataFrame with NA entries dropped from it.

参数说明:

Parameters说明
axis0为行 1为列,default 0,数据删除维度
how{‘any’, ‘all’}, default ‘any’,any:删除带有nan的行;all:删除全为nan的行
threshint,保留至少 int 个非nan行
subsetlist,在特定列缺失值处理
inplacebool,是否修改源文件

测试:

>>>df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
                   "toy": [np.nan, 'Batmobile', 'Bullwhip'],
                   "born": [pd.NaT, pd.Timestamp("1940-04-25"),
                            pd.NaT]})
>>>df
       name        toy       born
0    Alfred        NaN        NaT
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT

删除至少缺少一个元素的行:

>>>df.dropna()
     name        toy       born
1  Batman  Batmobile 1940-04-25

删除至少缺少一个元素的列:

>>>df.dropna(axis=1)
       name
0    Alfred
1    Batman
2  Catwoman

删除所有元素丢失的行:

>>>df.dropna(how='all')
       name        toy       born
0    Alfred        NaN        NaT
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT

只保留至少2个非NA值的行:

>>>df.dropna(thresh=2)
       name        toy       born
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT

从特定列中查找缺少的值:

>>>df.dropna(subset=['name', 'born'])
       name        toy       born
1    Batman  Batmobile 1940-04-25

修改原数据:

>>>df.dropna(inplace=True)
>>>df
     name        toy       born
1  Batman  Batmobile 1940-04-25

以上。

  • 34
    点赞
  • 177
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值