python中dropna函数_【Python】Dataframe删除空值

使用dropna()函数就可以去掉dataframe中的空值。这里就直接用的官方文档里面的例子。

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

1. dropna()函数有一个axis参数,用来指明是删除有空值的维度(行或列)。默认的是删除行。参数的值可以为{0 or ‘index’, 1 or ‘columns’}

df.dropna()

name toy born

1 Batman Batmobile 1940-04-25

删除有空值的列。

df.dropna(axis='columns')/df.dropna(axis=1)

name

0 Alfred

1 Batman

2 Catwoman

2. dropna()函数默认(how='any')的是只要行或列出现了空值,就删除行或列。可以通过how参数设置为行或列的所有值都为空值时才删除。我们新添加一列的值全为空,然后删除。

>>> df['sex'] = [np.nan,np.nan,np.nan]

>>> df

name toy born sex

0 Alfred NaN NaT NaN

1 Batman Batmobile 1940-04-25 NaN

2 Catwoman Bullwhip NaT NaN

>>> df.dropna(how='all',axis=1)

name toy born

0 Alfred NaN NaT

1 Batman Batmobile 1940-04-25

2 Catwoman Bullwhip NaT

>>>

3. 如果想删除指定列有空值的行,可以使用subset参数。这里删除的是name和born列的值为空的行。

df.dropna(subset=['name', 'born'])

name toy born

1 Batman Batmobile 1940-04-25

4. 需要注意的是,上面的操作并没有改变df,也就是说df里面的空值并没有删除。

>>> df.dropna()

name toy born

1 Batman Batmobile 1940-04-25

>>> df

name toy born

0 Alfred NaN NaT

1 Batman Batmobile 1940-04-25

2 Catwoman Bullwhip NaT

>>>

需要将删除空值的dataframe赋值给新的变量,或者将inplcace参数赋值为true来改变原来的df(dataframe的许多函数里都有这个参数)。

>>> df2 = df.dropna()

>>> df2

name toy born

1 Batman Batmobile 1940-04-25

>>>

>>> df.dropna(inplace=True)

>>> df

name toy born

1 Batman Batmobile 1940-04-25

>>>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值