首页 > 解决方案 > Pandas DataFrame 根据条件删除 NaN 行?

问题描述

Pandas DataFrame 根据条件删除 NaN 行。

我正在尝试删除其gender==malestatus == NaN.

样本df:

        name     status        gender   leaves
0       tom        NaN          male      5 
1       tom        True         male      6
2       tom        True         male      7
3       mary       True         female    1
4       mary       NaN          female    10
5       mary       True         female    15
6       john       NaN          male       2
7       mark      True          male       3

预期输出:

        name     status        gender   leaves
0       tom        True         male      6
1       tom        True         male      7
2       mary       True         female    1
3       mary       NaN          female    10
4       mary       True         female    15
5       mark      True          male       3

标签: pythonpandasnumpydataframe

解决方案


您可以使用isna(或isnull)函数获取值为 的行NaN。有了这些知识,您可以使用以下内容过滤您的数据框:

conditions = (df.gender == 'male')&(df.status.isna())
filtered_df = df[~conditions]

推荐阅读