按nan数排列的数据帧放置列

我有一个数据框,其中一些列包含nan。我想删除那些带有一定数量nan的列。例如,在下面的代码中,我想删除任何包含2个或更多nan的列。在这种情况下,将删除列“C”,只保留“A”和“B”。我如何实现它

将熊猫作为pd导入
将numpy作为np导入
dff=pd.DataFrame(np.random.randn(10,3),columns=list('ABC'))
dff.iloc[3,0]=np.nan
dff.iloc[6,1]=np.nan
dff.iloc[5:8,2]=np.nan
打印dff

对于dropna,有一个thresh参数,您只需传递df的长度-希望作为阈值的NaN值的数量:

[13]on

:
dff.dropna(阈值=透镜(dff)-2,轴=1)
Output[13]:
A B
0  0.517199 -0.806304
1 -0.643074  0.229602
2  0.656728  0.535155
3 NaN-0.162345
4 -0.309663 -0.783539
5  1.244725 -0.274514
6-0.254232 NaN
7 -1.242430  0.228660
8 -0.311874 -0.448886
9 -0.984453 -0.755416

因此,上面将删除任何不符合df(行数)-2长度标准的列作为非Na值的数量

发表评论