Python教程:空值、无穷值判断之isna、isnull、isfinite

cnblogs 2024-07-04 16:39:01 阅读 97

一、空值 isna

Pands 中 NaN(Not-A-Number) 视为空值,利用函数 isna 和 notna 进行判断。

注意:不要利用是否等于None判断是否为空!

<code>import pandas as pd

pd.NA == None # False

pd.isna(pd.NA) # True

pd.isna(None) # True

pd.notna(pd.NA) # False

pd.notna(None) # False

二、是否为空 isnull

import pandas as pd

import numpy as np

df = pd.DataFrame(np.arange(12).reshape(3,4))

df.iloc[1,1] = np.NaN

df.isnull()

df.isnull().sum() # 按列查看

np.any(df.isnull())

np.all(df.isnull())

# 空值填充

df.fillna(0)

三、isnull & isna 区别

isna 判断是否数值,一般是数值类型的null。

isnull 判断字符型是否有值,可以判断所有的空值,常用于数据框 DataFrame 当中。

四、无穷值 isfinite

Pandas 中无穷值为 inf 和 -inf 表示。

如果不处理,可能导致报错:ValueError: Input contains NaN, infinity or a value too large for

dtype('float64').。

import pandas as pd

import numpy as np

df = pd.DataFrame(np.arange(12).reshape(3,4))

df.iloc[0,2] = np.inf

df.iloc[1,2] = None

df.iloc[2,2] = np.nan

df

'''

0 1 2 3

0 0 1 inf 3

1 4 5 NaN 7

2 8 9 NaN 11

'''

判断数据是否为有限

#学习中遇到问题没人解答?小编创建了一个Python学习交流群:725638078

# 判断是否有限

np.isfinite(df)

np.all(np.isfinite(df)) # 全部

np.isfinite(df).all() # 按列

np.isfinite(df.T).all() # 按行

替换无限值

# 替换

df.replace([np.inf, -np.inf], 0)

删除无限值所在行列

df[np.isfinite(df.T).all()] # 删除行

df.loc[:, np.isfinite(df).all()] # 删除列


上一篇: python教程:自定义函数

下一篇: manim边学边做--Text

本文标签

df    np    判断   


声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。