pandas中的dropna()函数和np.dropna()函数

本文介绍了pandas中dropna()函数的使用,包括如何删除包含缺失值的行或列,以及参数如axis、how、thresh和subset的含义。通过示例展示了如何处理DataFrame中的缺失值,例如丢弃全为缺失值的行或列,以及针对特定列的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dropna()函数

参数:

axis: default 0指行,1为列,默认为0

how: {‘any’, ‘all’},‘any’指带缺失值的所有行;'all’指清除全是缺失值的,默认是any

thresh: int,保留含有int个非空值的行

subset: 对特定的列进行缺失值删除处理

inplace: 这个很常见,True表示直接在原数据上更改

简例

  • data.dropna(how = ‘all’) # 丢弃全为缺失值的那些行
  • data.dropna(axis = 1) # 丢弃有缺失值的列
  • data.dropna(axis=1,how=“all”) # 丢弃全为缺失值的那些列
  • data.dropna(axis=0,subset = [“Age”, “Sex”]) # 丢弃‘Age’和‘Sex’这两列中有缺失值的行

示例

构造个带缺失值的DataFrame

import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(5,4),index=list('abcde'),columns=['col1','col2','col3','col4'])
data
col1col2col3col4
a0.757299-0.641018-1.471744-1.200730
b-0.9026811.2442150.399760-1.536825
c-1.175376-1.168308-0.086006-0.237372
d-0.552627-0.0962870.1218810.457818
e0.7960961.720318-1.758990-1.870864
# 构造缺失值_1
data.iloc[1,:-1] = np.nan # iloc是根据索引进行操作
data
col1col2col3col4
a0.757299-0.641018-1.471744-1.200730
bNaNNaNNaN-1.536825
c-1.175376-1.168308-0.086006-0.237372
d-0.552627-0.0962870.1218810.457818
e0.7960961.720318-1.758990-1.870864
# 构造缺失值_2
data.iloc[1:-1,3] = np.nan
data
col1col2col3col4
a0.757299-0.641018-1.471744-1.200730
bNaNNaNNaNNaN
c-1.175376-1.168308-0.086006NaN
d-0.552627-0.0962870.121881NaN
e0.7960961.720318-1.758990-1.870864

对data进行测试

# 测试1
data.dropna() # 加上axis=0一样
col1col2col3col4
a0.757299-0.641018-1.471744-1.200730
e0.7960961.720318-1.758990-1.870864
# 测试2
data.dropna(axis=1) 
a
b
c
d
e
data.dropna(how='all')  # 只删除了全为nan的行
col1col2col3col4
a0.757299-0.641018-1.471744-1.200730
c-1.175376-1.168308-0.086006NaN
d-0.552627-0.0962870.121881NaN
e0.7960961.720318-1.758990-1.870864
data.dropna(thresh=1) # 只有1个nan的行被保留了
col1col2col3col4
a0.757299-0.641018-1.471744-1.200730
c-1.175376-1.168308-0.086006NaN
d-0.552627-0.0962870.121881NaN
e0.7960961.720318-1.758990-1.870864
data.dropna(axis=0,subset = ['col2','col3'])  # 删除了col2和col3这两列中有nan的行
col1col2col3col4
a0.757299-0.641018-1.471744-1.200730
c-1.175376-1.168308-0.086006NaN
d-0.552627-0.0962870.121881NaN
e0.7960961.720318-1.758990-1.870864

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值