如何检查 nan 是否存在于 pandas dataframe 中
nan
代表不是数字 - not a number
,表示 pandas 中缺少的值。要在 python pandas 中检测 nan 值,我们可以对 dataframe 对象使用 isnull()
和 isna()
方法。
pandas.dataframe.isnull()方法
我们可以使用 pandas.dataframe.isnull() 来检查 dataframe 中的 nan 值。如果要检查的 dataframe
中相应的元素具有 nan 值,则该方法返回布尔值的 dataframe 元素为 true
,否则为 false
。
import pandas as pd
import numpy as np
df = pd.dataframe(
{
"student": ["hisila", "shristi", "zeppy", "alina", "jerry"],
"height": [1.63, 1.5, np.nan, np.nan, 1.4],
"weight": [np.nan, 56, 73, np.nan, 44],
}
)
df_check = df.isnull()
print(df_check)
输出:
student height weight
0 false false true
1 false false false
2 false true false
3 false true true
4 false false false
在这里,输出中的 false
值代表 dataframe df
中的元素不是 nan
,true
值代表 dataframe df
中的 nan
元素。
如果我们想知道 dataframe 中是否有 nan 值,可以使用 isnull().values.any()
方法,如果 dataframe 中有任何 nan 值则返回 true;如果 dataframe 中甚至没有单个 nan 元素,则为 false。
import pandas as pd
import numpy as np
df = pd.dataframe(
{
"student": ["hisila", "shristi", "zeppy", "alina", "jerry"],
"height": [1.63, 1.5, np.nan, np.nan, 1.4],
"weight": [np.nan, 56, 73, np.nan, 44],
}
)
check_for_nan = df.isnull().values.any()
print(check_for_nan)
输出:
true
df.isnull().values
返回 dataframe 的 numpy 表示形式。如果任何元素被评估为 true,那么 numpy.any()
返回 true。
因此,如果 dataframe 中存在任何 nan
,则 df.isnull().values.any()
为 true
。
df.isnull().any().any()
检查是否存在任何 nan
df.any()
返回任何元素是否为 true。当 df
是一个 dataframe 时,它返回一个 pd.series
;而当 df
是 pd.series
时,它返回一个布尔值。
import pandas as pd
import numpy as np
df = pd.dataframe(
{
"student": ["hisila", "shristi", "zeppy", "alina", "jerry"],
"height": [1.63, 1.5, np.nan, np.nan, 1.4],
"weight": [np.nan, 56, 73, np.nan, 44],
}
)
check_for_nan = df.isnull().any().any()
print(check_for_nan)
输出:
true
如果 dataframe 中的任何元素为 nan
,则上例中的 isnull()
之后的两个级联的 any()
方法将返回 true
。
isnull().sum().sum()
检查是否存在 nan
如果我们想计算特定 dataframe 中 nan 值的总数,那么 df.isnull().sum().sum()
方法是正确的ag捕鱼王app官网的解决方案。该方法在整个 dataframe 中返回 nan
值的总数。
import pandas as pd
import numpy as np
df = pd.dataframe(
{
"student": ["hisila", "shristi", "zeppy", "alina", "jerry"],
"height": [1.63, 1.5, np.nan, np.nan, 1.4],
"weight": [np.nan, 56, 73, np.nan, 44],
}
)
total_nan_values = df.isnull().sum().sum()
print(total_nan_values)
输出:
4
如果结果大于 0,则表示 dataframe 中存在 nan
。
pandas.dataframe.isna()
方法
pandas.dataframe.isna() 方法类似于
pandas.dataframe.isnull()。两种方法的工作之间没有任何区别。它们只是名称不同。
import pandas as pd
import numpy as np
df = pd.dataframe(
{
"student": ["hisila", "shristi", "zeppy", "alina", "jerry"],
"height": [1.63, 1.5, np.nan, np.nan, 1.4],
"weight": [np.nan, 56, 73, np.nan, 44],
}
)
df_check = df.isna()
check_for_any_nan = df.isna().values.any()
# or
check_for_any_nan = df.isna().any().any()
total_nan_values = df.isna().sum().sum()
print(df_check)
print("nan presence:" str(check_for_any_nan))
print("total number of nan values:" str(total_nan_values))
输出:
student height weight
0 false false true
1 false false false
2 false true false
3 false true true
4 false false false
nan presence:true
total number of nan values:4
在这里,方法 df.isna()
返回的 dataframe 的元素包含布尔值,这些布尔值表示在 df 中存在 nan 值。类似地,df.isna().values.any()
,df.isna().any().any()
和 df.isna().sum().sum()
返回存在的整个 df 中的 nan 值和 df 中的 nan 元素数。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串