gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:08:24 24 4
gpt4 key购买 nike

给定一个 pandas 数据框,其中包含分散在各处的可能 NaN 值:

问题:如何确定哪些列包含 NaN 值?特别是,我可以获得包含 NaN 的列名列表吗?

最佳答案

更新:使用 Pandas 0.22.0

较新的 Pandas 版本具有新方法 'DataFrame.isna()''DataFrame.notna()'

In [71]: df
Out[71]:
a b c
0 NaN 7.0 0
1 0.0 NaN 4
2 2.0 NaN 4
3 1.0 7.0 0
4 1.0 3.0 9
5 7.0 4.0 9
6 2.0 6.0 9
7 9.0 6.0 4
8 3.0 0.0 9
9 9.0 0.0 1

In [72]: df.isna().any()
Out[72]:
a True
b True
c False
dtype: bool

作为列列表:

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

选择那些列(至少包含一个 NaN 值):

In [73]: df.loc[:, df.isna().any()]
Out[73]:
a b
0 NaN 7.0
1 0.0 NaN
2 2.0 NaN
3 1.0 7.0
4 1.0 3.0
5 7.0 4.0
6 2.0 6.0
7 9.0 6.0
8 3.0 0.0
9 9.0 0.0

旧答案:

尝试使用isnull() :

In [97]: df
Out[97]:
a b c
0 NaN 7.0 0
1 0.0 NaN 4
2 2.0 NaN 4
3 1.0 7.0 0
4 1.0 3.0 9
5 7.0 4.0 9
6 2.0 6.0 9
7 9.0 6.0 4
8 3.0 0.0 9
9 9.0 0.0 1

In [98]: pd.isnull(df).sum() > 0
Out[98]:
a True
b True
c False
dtype: bool

或者像@root 提出的更清晰的版本:

In [5]: df.isnull().any()
Out[5]:
a True
b True
c False
dtype: bool

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

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

In [31]: df.loc[:, df.isnull().any()]
Out[31]:
a b
0 NaN 7.0
1 0.0 NaN
2 2.0 NaN
3 1.0 7.0
4 1.0 3.0
5 7.0 4.0
6 2.0 6.0
7 9.0 6.0
8 3.0 0.0
9 9.0 0.0

关于python - 如何在 Pandas 数据框中查找哪些列包含任何 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36226083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com