函数下午茶(2):数据检测与缺失值处理~

数据检测与缺失值处理~

1.DataFrame.isnull()和notnull()函数

介绍

会返回DataFrame相同形状的布尔对象,指示是否有⽆空值。是⼀个⽆参数函数。

举例

1 df = pd.DataFrame(dict(age=[5, 6, np.NaN],
2 born=[pd.NaT, pd.Timestamp('1939-05-27'),
3	pd.Timestamp('1940-04-25')],
4 name=['Alfred', 'Batman', ''],
5 toy=[None, 'Batmobile', 'Joker']))
6 df.isull()
7 >>	age	born	name	toy
8 0	False	True	False	True
9 1	False	False	False	False
10 True	False	False	False

2.DataFrame.fillna()函数

介绍

该函数⼀般⽤来填充缺失值,基本使⽤⽅法如下

pandas.DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)

参数介绍

参数介绍
value接受Series和DataFrame。填充值处理对象。
method{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’,None},填充的⽅法。
axis{0 or ‘index’, 1 or ‘columns’}, 填充缺失值
inplacebool值,默认False。是否替换原数据。
limitint型,默认None。填充值限定个数。

举例

1 df = pd.DataFrame([[np.nan, 2, np.nan, 0], 
2 [3, 4, np.nan, 1], 
3 [np.nan, np.nan, np.nan, 5], 
4 [np.nan, 3, np.nan, 4]], 
5 columns=list('ABCD')) 
6 df 
7 >> A B C D 
8 0 NaN 2.0 NaN 0 
9 1 3.0 4.0 NaN 1 
10 2 NaN NaN NaN 5 
11 3 NaN 3.0 NaN 4 
12 
13 #直接填充0 
14 df.fillna(0)
15 >>	A	B	C	D
16 0	0.0	2.0	0.0	0
17 1	3.0	4.0	0.0	1
18 2	0.0	0.0	0.0	5
19 3	0.0	3.0	0.0	4

20
21 #按照⾏填充
22  values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}
23  df.fillna(value=values)
24 >>	A	B	C	D
25 0	0.0	2.0	2.0	0
26 1	3.0	4.0	2.0	1
27 2 0.0 1.0 2.0 5 
28 3 0.0 3.0 2.0 4

3.DataFrame.dropna()函数

介绍

移除缺失的值。

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

参数说明

参数介绍
axis接收0或1。表示轴向,0为删除观测记录(⾏),1为删除特征(列)。默认为0。
how接收特定string。表示删除的形式。any表示只要有缺失值存在就执⾏删除操作。all表示当且仅当全部为缺失值时执⾏删除操 作。默认为any。
subset接收类array数据。表示进⾏去重的列∕⾏。默认为None,表示所有列/⾏。
inplace接收boolean。表示是否在原表上进⾏操作。默认为False。

便捷的删除缺失值函数,有多种删除缺失值⽅式。

举例

1  df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
2		"toy": [np.nan, 'Batmobile', 'Bullwhip'],
3		"born": [pd.NaT, pd.Timestamp("1940-04-25"),
4		pd.NaT]})
5
6 df		
7 >>	name	toy	born
8 0 Alfred NaN NaT 
9 1 Batman Batmobile 1940-04-25 
10 2 Catwoman Bullwhip NaT 
11 
12 df.dropna() 
13 >> name toy born 
14 1 Batman Batmobile 1940-04-25 
15 
16 df.dropna(how='all') 
17 >> name toy born 
18 0 Alfred NaN NaT 
19 1 Batman Batmobile 1940-04-25 
20 2 Catwoman Bullwhip NaT 
21 
22 df.dropna(subset=['name', 'toy']) 
23 >> name toy born 
24 1 Batman Batmobile 1940-04-25 
25 2 Catwoman Bullwhip NaT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值