gpt4 book ai didi

python - Pandas 选择所有没有 NaN 的列

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:51 25 4
gpt4 key购买 nike

我有一个包含 200 列的 DF。他们中的大多数都与 NaN 相关。我想选择所有没有 NaN 或至少有最小 NaN 的列。我试图用阈值或 notnull() 删除所有但没有成功。任何想法。

df.dropna(thresh=2, inplace=True)
df_notnull = df[df.notnull()]

例如DF:

col1  col2 col3
23 45 NaN
54 39 NaN
NaN 45 76
87 32 NaN

输出应该是这样的:

 df.dropna(axis=1, thresh=2)

col1 col2
23 45
54 39
NaN 45
87 32

最佳答案

您可以使用非 NaN 列创建

df = df[df.columns[~df.isnull().all()]]

或者

null_cols = df.columns[df.isnull().all()]
df.drop(null_cols, axis = 1, inplace = True)

如果您希望根据一定百分比的 NaN 删除列,则将数据超过 90% 的列设为 null

cols_to_delete = df.columns[df.isnull().sum()/len(df) > .90]
df.drop(cols_to_delete, axis = 1, inplace = True)

关于python - Pandas 选择所有没有 NaN 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47414848/

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