按nan数排列的pandas dataframe删除列
发布于 2021-01-29 16:08:54
我有一些包含nan的列的数据框。我想删除带有特定数量nan的那些列。例如,在下面的代码中,我想删除2个或更多nan的任何列。在这种情况下,列“
C”将被删除,仅保留“ A”和“ B”。如何实施?
import pandas as pd
import numpy as 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
print dff
关注者
0
被浏览
274
1 个回答
-
有一个
thresh
参数dropna
,您只需要传递df的长度-NaN
您想要作为阈值的值数:In [13]: dff.dropna(thresh=len(dff) - 2, axis=1) Out[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值数量标准的列。