4.Pandas处理丢失数据

0 引言

Pandas生成DataFrame表格,有时候表中会有一些空值(NaN),这时候就需要用到 .dropna函数和 .fillna函数来进行去除或重新为空值赋值,可以调用 .isnull 函数判断表中是否存在空值,也可以结合numpy的.any函数和 .all函数判断表格中是否存在空值。

1 Pandas处理丢失数据

import pandas as pd
import numpy as np

创建一个DataFrame表格df1

dates = np.arange(20200101,20200105)
df1 = pd.DataFrame(np.arange(12).reshape((4,3)),index=dates,columns=['A','B','C'])
df1
ABC
20200101012
20200102345
20200103678
2020010491011

创建一个DataFrame表格df2,但’D’和‘E’没有具体值,空值

df2 = pd.DataFrame(df1,index=dates,columns=['A','B','C','D','E'])
df2
ABCDE
20200101012NaNNaN
20200102345NaNNaN
20200103678NaNNaN
2020010491011NaNNaN

创建两个Series

s1 = pd.Series([3,4,6],index=dates[:3])
s2 = pd.Series([32,5,2],index=dates[1:])
df2['D'] = s1
df2['E'] = s2
df2
ABCDE
202001010123.0NaN
202001023454.032.0
202001036786.05.0
2020010491011NaN2.0

调用 .dropna 去除含有空值的行,其中’any’是含有空值就会删除该行,'all’是都是空值才删除该行

df2.dropna(axis=0,how='any') #how=['any','all'],any任意一个或多个,all全部
ABCDE
202001023454.032.0
202001036786.05.0

调用 .dropna 去除含有空值的列

df2.dropna(axis=1,how='any')
ABC
20200101012
20200102345
20200103678
2020010491011

调用 .fillna 给表中空值进行重新赋值

df2.fillna(value=0) # 把空值赋值为0
ABCDE
202001010123.00.0
202001023454.032.0
202001036786.05.0
20200104910110.02.0

调用 .isnull 查看空值,其中True是空值

df2.isnull() # 查看空值
ABCDE
20200101FalseFalseFalseFalseTrue
20200102FalseFalseFalseFalseFalse
20200103FalseFalseFalseFalseFalse
20200104FalseFalseFalseTrueFalse

调用 .isnull 并结合numpy.any判断空值,该行只有有一个或多个空值就会返回True

np.any(df2.isnull())
A    False
B    False
C    False
D     True
E     True
dtype: bool

调用 .isnull 并结合numpy.any判断空值,该行全部为空值才会返回True

np.all(df2.isnull())
A    False
B    False
C    False
D    False
E    False
dtype: bool
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZPILOTE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值