df.dropna() 过滤数据中的缺失数据

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

参数:

axis:{0 or ‘index’, 1 or ‘columns’}, default 0,确定是否删除包含缺失值的行或列,在1.0.0版中进行了更改:将元组或列表传递到多个轴上。只允许一个轴。

how:{‘any’, ‘all’}, default ‘any’,当我们有至少一个NA或全部NA时,确定是否从DataFrame中删除行或列,'any':如果存在任何NA值,则删除该行或列,'all':如果所有值均为NA,则删除该行或列。

thresh:int, optional,需要许多非NA值。

subset:array-like, optional,要考虑的其他轴上的标签,例如,如果要删除行,这些标签将是要包括的列的列表。

inplace:bool, 默认为False。

官网案例

代码:

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的值是,没有更改,因为inplace=False:

       name        toy       born
0    Alfred        NaN        NaT
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT

剩下几个参数

df.dropna(axis='columns')          #删除有缺失值的列
df.dropna(how='all')               #将所有元素都缺失的行删除
df.dropna(thresh=2)                #仅保留至少具有2个非NA值的行
df.dropna(subset=['name', 'born']) #在name和born列中查找缺失值,一旦有缺失值就删除行
df.dropna(inplace=True)            #确认覆盖原数据

对缺失值的类型解释一下

缺失值类型说明
NoneNoneTypeNone不同于空列表和空字符串,是一种单独的格式
NaNFloatNaN是numpy\pandas下的,不是Python原生的,Not a Number的简称。
Null-在Python中没有这个NULL,NULL主要是在C语言中,在Python中对应的就是None
NaTDatatime非时间空值,Not a Time
“”str空字符串

 官网代码:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html?highlight=dropna#pandas.DataFrame.dropnaicon-default.png?t=LA92https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html?highlight=dropna#pandas.DataFrame.dropna

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值