PyPackage01---Pandas17_null、inf筛选

判断数据集是否存在null、inf,快速定位所在列、行,方便分析原因

无穷大、无穷小处理

import pandas as pd
import numpy as np

# Create dataframe using dictionary
data = {'Student ID': [10, 11, 12, 13, 14], 'Age': [
    23, 22, 24, 22, np.nan], 'Weight': [66, 72, np.inf, 68, -np.inf]}

df = pd.DataFrame(data)
df
Student IDAgeWeight
01023.066.0
11122.072.0
21224.0inf
31322.068.0
414NaN-inf

是否存在inf

这里null也是非finite的

df.isin( [np.inf,-np.inf]).sum()
d = np.isfinite(df)
display(d)
Student IDAgeWeight
0TrueTrueTrue
1TrueTrueTrue
2TrueTrueFalse
3TrueTrueTrue
4TrueFalseFalse

都是有限数据

np.all(np.isfinite(df))
False

存在有限数据

np.any(np.isfinite(df))
True

定位行列

定位所在列

np.isfinite(df).sum()
Student ID    5
Age           4
Weight        3
dtype: int64
np.isfinite(df).all()
Student ID     True
Age           False
Weight        False
dtype: bool

定位所在行

np.isfinite(df).T.all()
0     True
1     True
2    False
3     True
4    False
dtype: bool
df[list(np.isfinite(df).all()[np.isfinite(df).all() == False].index)].loc[list(
    np.isfinite(df).T.all()[np.isfinite(df).T.all() == False].index), :]
AgeWeight
224.0inf
4NaN-inf

这样找到无穷大值所在的行列,颇为麻烦

na值处理

df.isna().sum()
Student ID    0
Age           1
Weight        0
dtype: int64
df.isnull().sum()
Student ID    0
Age           1
Weight        0
dtype: int64

同样处理逻辑,直接看代码

np.isnan(df)
Student IDAgeWeight
0FalseFalseFalse
1FalseFalseFalse
2FalseFalseFalse
3FalseFalseFalse
4FalseTrueFalse
df[list(np.isnan(df).any()[np.isnan(df).any() == True].index)].loc[list(
    np.isnan(df).T.any()[np.isnan(df).T.any() == True].index), :]
Age
4NaN

                                2023-07-26 阴 于南京市江宁区

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值