如何在 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值