【发布时间】:2021-08-07 03:16:15
【问题描述】:
我有一个可能包含 NaN 值的数据框。如何找到 NaN 并且仅找到 NaN?大多数建议建议使用 df.isnull,但这也返回 None 值。我只关心 NaN。
谢谢
【问题讨论】:
-
从广义上讲,如果可以(也许是),您可能会发现从数组中删除本机 Python None 会有很大的优势!也许将它们过滤为新的布尔列。
我有一个可能包含 NaN 值的数据框。如何找到 NaN 并且仅找到 NaN?大多数建议建议使用 df.isnull,但这也返回 None 值。我只关心 NaN。
谢谢
【问题讨论】:
要查找您可以使用的 NAN 值:
df.isna().sum(axis='index') # or axis = 0
df.isna().sum(axis='columns') # or axis = 1
df.isna().sum().sum() # to find all nan values in df
NOTE:df.isna() 将返回一个带有布尔值的 df(形状与原始 df 相同)。然后您可以使用上述 3 个函数来评估 nan 值。
TO COUNT ONLY NAN's:
您可以将None 替换为random_str,然后计算NaN 计数。
new_df = df.astype(str).replace('None','Random_str')
【讨论】:
isnull 是“isna 的别名。”,因此这是与 OP 问题中不起作用的相同的解决方案。