栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Pandas数据框中查找哪些列包含任何NaN值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Pandas数据框中查找哪些列包含任何NaN值

更新: 使用熊猫0.22.0

较新的Pandas版本具有新的方法‘Dataframe.isna()’和‘Dataframe.notna()’

In [71]: dfOut[71]:     a    b  c0  NaN  7.0  01  0.0  NaN  42  2.0  NaN  43  1.0  7.0  04  1.0  3.0  95  7.0  4.0  96  2.0  6.0  97  9.0  6.0  48  3.0  0.0  99  9.0  0.0  1In [72]: df.isna().any()Out[72]:a     Trueb     Truec    Falsedtype: bool

作为列列表:

In [74]: df.columns[df.isna().any()].tolist()Out[74]: ['a', 'b']

选择这些列(至少包含一个

NaN
值):

In [73]: df.loc[:, df.isna().any()]Out[73]:     a    b0  NaN  7.01  0.0  NaN2  2.0  NaN3  1.0  7.04  1.0  3.05  7.0  4.06  2.0  6.07  9.0  6.08  3.0  0.09  9.0  0.0

旧答案:

尝试使用isnull():

In [97]: dfOut[97]:     a    b  c0  NaN  7.0  01  0.0  NaN  42  2.0  NaN  43  1.0  7.0  04  1.0  3.0  95  7.0  4.0  96  2.0  6.0  97  9.0  6.0  48  3.0  0.0  99  9.0  0.0  1In [98]: pd.isnull(df).sum() > 0Out[98]:a     Trueb     Truec    Falsedtype: bool

或作为@root建议的更清晰的版本:

In [5]: df.isnull().any()Out[5]:a     Trueb     Truec    Falsedtype: boolIn [7]: df.columns[df.isnull().any()].tolist()Out[7]: ['a', 'b']

选择一个子集-所有列至少包含一个

NaN
值:

In [31]: df.loc[:, df.isnull().any()]Out[31]:     a    b0  NaN  7.01  0.0  NaN2  2.0  NaN3  1.0  7.04  1.0  3.05  7.0  4.06  2.0  6.07  9.0  6.08  3.0  0.09  9.0  0.0


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636843.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号