あなたはnotnull
値のカウントが大きいcolumns
にboolean indexing
を使用することができます80%
:
df.loc[:, pd.notnull(df).sum()>len(df)*.8]
図示のよう
df.loc[:, (df > 1).sum() > len(df) *. 8]
また、.dropna()
場合のために、あなたも.dropna()
のthresh
キーワードを指定することができます。
これは例えば、列をドロップ1
よりも大きな値の数は次のようになります場合は、多くの場合に便利です@EdChumによって:
df.dropna(thresh=0.8*len(df), axis=1)
後者が若干速くなる。
df = pd.DataFrame(np.random.random((100, 5)), columns=list('ABCDE'))
for col in df:
df.loc[np.random.choice(list(range(100)), np.random.randint(10, 30)), col] = np.nan
%timeit df.loc[:, pd.notnull(df).sum()>len(df)*.8]
1000 loops, best of 3: 716 µs per loop
%timeit df.dropna(thresh=0.8*len(df), axis=1)
1000 loops, best of 3: 537 µs per loop
あなたは(df.isnull使用することができます)、同じのブールDF /シリーズを返されますサイズ。結果の各列の行を合計し、合計行で割りますか?列を適切に削除します。 – Chris