如何计算 Pandas 中 NaN 值的数量?
我们可能需要计算数据集中每个特征的 NaN 值的数量,以便我们决定如何处理它。例如,如果缺失值的数量非常少,那么我们可以选择丢弃这些观察;或者可能有一列缺少很多条目,因此我们可以决定是否包含该变量。
方法一:使用 describe()
我们可以使用describe()方法,它返回一个包含数据集详细信息的表。 count属性直接给出每列中非 NaN 值的计数。因此,如果我们知道观察的总数,我们可以获得 NaN 值的计数。
import pandas as pd
import numpy as np
# dictionary of lists
dict = { 'A':[1, 4, 6, 9],
'B':[np.NaN, 5, 8, np.NaN],
'C':[7, 3, np.NaN, 2],
'D':[1, np.NaN, np.NaN, np.NaN] }
# creating dataframe from the
# dictionary
data = pd.DataFrame(dict)
data.describe()
输出 :
方法 2:使用 sum()
isnull()函数返回包含 True 和 False 值的数据集。由于 True 被视为 1 而 False 被视为 0,因此调用isnull()系列的sum()方法会返回 True 值的计数,该计数实际上对应于 NaN 值的数量。
在列中计算 NaN :
我们可以简单地在所需列中找到空值,然后得到总和。
import pandas as pd
import numpy as np
# dictionary of lists
dict = { 'A':[1, 4, 6, 9],
'B':[np.NaN, 5, 8, np.NaN],
'C':[7, 3, np.NaN, 2],
'D':[1, np.NaN, np.NaN, np.NaN] }
# creating dataframe from the
# dictionary
data = pd.DataFrame(dict)
# total NaN values in column 'B'
print(data['B'].isnull().sum())
输出 :
2
连续计算 NaN :
可以使用 loc 或 iloc 选择行。然后我们像以前一样找到总和。
import pandas as pd
import numpy as np
# dictionary of lists
dict = { 'A':[1, 4, 6, 9],
'B':[np.NaN, 5, 8, np.NaN],
'C':[7, 3, np.NaN, 2],
'D':[1, np.NaN, np.NaN, np.NaN] }
# creating dataframe from the
# dictionary
data = pd.DataFrame(dict)
# total NaN values in row index 1
print(data.loc[1, :].isnull().sum())
输出 :
1
在整个 DataFrame 中计算 NaN :
要计算整个数据集中的 NaN,我们只需要调用sum()函数两次——一次用于获取每列的计数,另一次用于查找所有列的总和。
import pandas as pd
import numpy as np
# dictionary of lists
dict = {'A':[1, 4, 6, 9],
'B':[np.NaN, 5, 8, np.NaN],
'C':[7, 3, np.NaN, 2],
'D':[1, np.NaN, np.NaN, np.NaN]}
# creating dataframe from the
# dictionary
data = pd.DataFrame(dict)
# total count of NaN values
print(data.isnull().sum().sum())
输出 :
6
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。