Guest User

Untitled

a guest
Nov 21st, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. df = df.loc[:, df.isnull().mean() < .8]
  2.  
  3. np.random.seed(100)
  4. df = pd.DataFrame(np.random.random((100,5)), columns=list('ABCDE'))
  5. df.loc[:80, 'A'] = np.nan
  6. df.loc[:5, 'C'] = np.nan
  7. df.loc[20:, 'D'] = np.nan
  8.  
  9. print (df.isnull().mean())
  10. A 0.81
  11. B 0.00
  12. C 0.06
  13. D 0.80
  14. E 0.00
  15. dtype: float64
  16.  
  17. df = df.loc[:, df.isnull().mean() < .8]
  18. print (df.head())
  19. B C E
  20. 0 0.278369 NaN 0.004719
  21. 1 0.670749 NaN 0.575093
  22. 2 0.209202 NaN 0.219697
  23. 3 0.811683 NaN 0.274074
  24. 4 0.940030 NaN 0.175410
  25.  
  26. np.random.seed(1997)
  27. df = pd.DataFrame(np.random.choice([np.nan,1], p=(0.8,0.2),size=(10,10)))
  28. print (df)
  29. 0 1 2 3 4 5 6 7 8 9
  30. 0 NaN NaN NaN 1.0 1.0 NaN NaN NaN NaN NaN
  31. 1 1.0 NaN 1.0 NaN NaN NaN NaN NaN NaN NaN
  32. 2 NaN NaN NaN NaN NaN 1.0 1.0 NaN NaN NaN
  33. 3 NaN NaN NaN NaN 1.0 NaN NaN NaN NaN NaN
  34. 4 NaN NaN NaN NaN NaN 1.0 NaN NaN NaN 1.0
  35. 5 NaN NaN NaN 1.0 1.0 NaN NaN 1.0 NaN 1.0
  36. 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
  37. 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
  38. 8 NaN NaN NaN NaN NaN NaN NaN 1.0 NaN NaN
  39. 9 1.0 NaN NaN NaN 1.0 NaN NaN 1.0 NaN NaN
  40.  
  41. df1 = df.dropna(thresh=2, axis=1)
  42. print (df1)
  43. 0 3 4 5 7 9
  44. 0 NaN 1.0 1.0 NaN NaN NaN
  45. 1 1.0 NaN NaN NaN NaN NaN
  46. 2 NaN NaN NaN 1.0 NaN NaN
  47. 3 NaN NaN 1.0 NaN NaN NaN
  48. 4 NaN NaN NaN 1.0 NaN 1.0
  49. 5 NaN 1.0 1.0 NaN 1.0 1.0
  50. 6 NaN NaN NaN NaN NaN NaN
  51. 7 NaN NaN NaN NaN NaN NaN
  52. 8 NaN NaN NaN NaN 1.0 NaN
  53. 9 1.0 NaN 1.0 NaN 1.0 NaN
  54.  
  55. def get_nan_cols(df, nan_percent=0.8):
  56. threshold = len(df.index) * nan_percent
  57. return [c for c in df.columns if sum(df[c].isnull()) >= threshold]
  58.  
  59. del df[get_nan_cols(df, 0.8)]
  60.  
  61. df.dropna(thresh=np.int((100-percent_NA_cols_required)*(len(df.columns)/100)),inplace=True)
Add Comment
Please, Sign In to add comment