删除数据集的 NaN

Remove NaN for the dataset

给定样本 df:

p = [[1.234,1], [2.2134,1.2365], [1.1234,2.5432]]
q = [[2,2], [0,1], [2,4]]
p[p == 22] = np.nan

我可以通过以下操作从 p 值中删除 NaN

p = np.array([i for i in p if np.any(np.isfinite(i))], np.float64)
q = np.array(q, np.float64)

我可以做任何循环来检查是否有 NaN 并将其删除吗?

但这是给一对夫妇的。如果我有这样的数据集怎么办(真实数据要大得多(106,1900)

df =

    1           1.1     2           2.1     3           3.1     4           4.1     5           5.1
0   43.1024     6.7498  NaN         NaN     NaN         NaN     NaN         NaN     NaN         NaN
1   46.0595     1.6829  25.0695     3.7463  NaN         NaN     NaN         NaN     NaN         NaN
2   25.0695     5.5454  44.9727     8.6660  41.9726     2.6666  84.9566     3.8484  44.9566     1.8484
3   35.0281     7.7525  45.0322     3.7465  14.0369     3.7463  NaN         NaN     NaN         NaN
4   35.0292     7.5616  45.0292     4.5616  23.0292     3.5616  45.0292             NaN         NaN

例如尝试(为了用 0 填充所有 NaN-s):

df.fillna(0)

参考:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.fillna.html

您可以使用每列的平均值或均值来填充您的 NaN 值

df.fillna(df.mean())