如果列具有一定百分比的NaN值(Python),则返回列 希望仅返回具有至少25%NaN值的列作为新df

如果列具有一定百分比的NaN值(Python),则返回列 希望仅返回具有至少25%NaN值的列作为新df,python,pandas,conditional-statements,nan,Python,Pandas,Conditional Statements,Nan,我在考虑使用.loc、.isnull或count的条件语句,但我不确定最有效的方法是什么。感谢所有的帮助 DF: 思考: df.loc[df['series'] == nan >= 25% ] 或者类似于: if count(nan) for column(x) in 'series' is >= (.25 * (count(x))) return loc[x] 返回新数据帧: df2: A B 1 1 2 2 NaN N

我在考虑使用.loc.isnullcount条件语句,但我不确定最有效的方法是什么。感谢所有的帮助

DF:

思考:

df.loc[df['series'] == nan >= 25% ]
或者类似于:


if count(nan) for column(x) in 'series' is >= (.25 * (count(x)))
    return loc[x]
返回新数据帧

df2:

    A    B    
1   1    2    
2   NaN  NaN  
3   4    NaN  
4   2    NaN


返回A和B,因为根据来自的响应,它们中的每一个都至少有25%的列条目为NaN(缺少)

na\u count\u mask=df.isna().sum(axis=0)>=(col\u count//4)
res_df=df.loc[na_count_mask]

这是否回答了您的问题@不幸的是,没有。这有助于确定每列的百分比,但在根据给定的百分比阈值重组df方面,似乎缺乏这一点。我的目标是跳过识别每列缺失值的过程,直接跳转到只包含符合阈值规则的列的新df。@Alex你不能只使用
dropna()
?@AlexanderCécile据我所知,
dropna()
会删除NAN,不是吗?我想删除没有至少25%NaN的列。也许我可以把它用在条件句中?但我不知道该如何应用它。@Alex看着,你可以让它删除NA值(
thresh
parameter)数大于你列数25%的行。太棒了!谢谢大家!@亚历克斯,我可以把那一行分开,让它更容易阅读。很好,很清楚?很清楚!再次感谢
df2:

    A    B    
1   1    2    
2   NaN  NaN  
3   4    NaN  
4   2    NaN