如何在 pandas 中选择具有 nan 值的行(附示例)


您可以使用以下方法来选择 pandas 中具有 NaN 值的行:

方法1:选择任意列中具有NaN值的行

 df. loc [df. isnull (). any (axis= 1 )]

方法2:选择特定列中具有NaN值的行

 df. loc [df[' this_column ']. isnull ()]

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, np.NaN, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, np.NaN, 9, 9, np.NaN],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, np.NaN]})

#view DataFrame
print (df)

示例1:选择任意列中具有NaN值的行

我们可以使用以下语法来选择DataFrame的任何列中具有NaN值的行:

 #create new DataFrame that only contains rows with NaNs in any column
df_nan_rows = df. loc [df. isnull (). any (axis= 1 )]

#view results
print (df_nan_rows)

  team points assists rebounds
1 B NaN 7.0 8.0
4 E 14.0 NaN 6.0
7 H 28.0 NaN NaN   

请注意,生成的 DataFrame 的每一行至少有一列包含 NaN 值。

示例2:选择特定列中具有NaN值的行

我们可以使用以下语法来选择 DataFrame 的辅助列中具有 NaN 值的行:

 #create new DataFrame that only contains rows with NaNs in assists column
df_assists_nans = df. loc [df[' assists ']. isnull ()]
#view results
print (df_assists_nans)

  team points assists rebounds
4 E 14.0 NaN 6.0
7 H 28.0 NaN NaN   

请注意,生成的 DataFrame 的每一行在辅助列中都包含一个 NaN 值。

点数列中有一行具有 NaN 值,但未选择该行,因为它的助攻列中也没有 NaN 值。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

Pandas:如何删除具有 NaN 值的行
Pandas:如何用字符串替换 NaN 值
Pandas:如何用平均值填充NaN值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注