Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- df = df.loc[:, df.isnull().mean() < .8]
- np.random.seed(100)
- df = pd.DataFrame(np.random.random((100,5)), columns=list('ABCDE'))
- df.loc[:80, 'A'] = np.nan
- df.loc[:5, 'C'] = np.nan
- df.loc[20:, 'D'] = np.nan
- print (df.isnull().mean())
- A 0.81
- B 0.00
- C 0.06
- D 0.80
- E 0.00
- dtype: float64
- df = df.loc[:, df.isnull().mean() < .8]
- print (df.head())
- B C E
- 0 0.278369 NaN 0.004719
- 1 0.670749 NaN 0.575093
- 2 0.209202 NaN 0.219697
- 3 0.811683 NaN 0.274074
- 4 0.940030 NaN 0.175410
- np.random.seed(1997)
- df = pd.DataFrame(np.random.choice([np.nan,1], p=(0.8,0.2),size=(10,10)))
- print (df)
- 0 1 2 3 4 5 6 7 8 9
- 0 NaN NaN NaN 1.0 1.0 NaN NaN NaN NaN NaN
- 1 1.0 NaN 1.0 NaN NaN NaN NaN NaN NaN NaN
- 2 NaN NaN NaN NaN NaN 1.0 1.0 NaN NaN NaN
- 3 NaN NaN NaN NaN 1.0 NaN NaN NaN NaN NaN
- 4 NaN NaN NaN NaN NaN 1.0 NaN NaN NaN 1.0
- 5 NaN NaN NaN 1.0 1.0 NaN NaN 1.0 NaN 1.0
- 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
- 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
- 8 NaN NaN NaN NaN NaN NaN NaN 1.0 NaN NaN
- 9 1.0 NaN NaN NaN 1.0 NaN NaN 1.0 NaN NaN
- df1 = df.dropna(thresh=2, axis=1)
- print (df1)
- 0 3 4 5 7 9
- 0 NaN 1.0 1.0 NaN NaN NaN
- 1 1.0 NaN NaN NaN NaN NaN
- 2 NaN NaN NaN 1.0 NaN NaN
- 3 NaN NaN 1.0 NaN NaN NaN
- 4 NaN NaN NaN 1.0 NaN 1.0
- 5 NaN 1.0 1.0 NaN 1.0 1.0
- 6 NaN NaN NaN NaN NaN NaN
- 7 NaN NaN NaN NaN NaN NaN
- 8 NaN NaN NaN NaN 1.0 NaN
- 9 1.0 NaN 1.0 NaN 1.0 NaN
- def get_nan_cols(df, nan_percent=0.8):
- threshold = len(df.index) * nan_percent
- return [c for c in df.columns if sum(df[c].isnull()) >= threshold]
- del df[get_nan_cols(df, 0.8)]
- df.dropna(thresh=np.int((100-percent_NA_cols_required)*(len(df.columns)/100)),inplace=True)
Add Comment
Please, Sign In to add comment