Guest User

Untitled

a guest
Feb 20th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. In [1]: import pandas as pd
  2. ...:
  3. ...: data = {'m': ['m1','m2','m2','m3','m3','m3','m4','m4','m4','m4'],
  4. ...: 'e': ['e1','e2','e3','e4','e5','e6','e7','e1','e2','e8'],
  5. ...: 'p': [0.9, 0.2, 0.8, 0.7, 0.1, 0.2, 0.3, 0.1, 0.2, 0.4]}
  6. ...: df = pd.DataFrame(data)
  7. ...: df
  8. ...:
  9. Out[1]:
  10. e m p
  11. 0 e1 m1 0.9
  12. 1 e2 m2 0.2
  13. 2 e3 m2 0.8
  14. 3 e4 m3 0.7
  15. 4 e5 m3 0.1
  16. 5 e6 m3 0.2
  17. 6 e7 m4 0.3
  18. 7 e1 m4 0.1
  19. 8 e2 m4 0.2
  20. 9 e8 m4 0.4
  21.  
  22. In [2]: gm = df.groupby(by=['m'])
  23.  
  24. In [3]: count = gm['e'].count()
  25. ...: count = count.to_frame()
  26. ...: count.columns = ['count']
  27. ...: count
  28. ...:
  29. Out[3]:
  30. count
  31. m
  32. m1 1
  33. m2 2
  34. m3 3
  35. m4 4
  36.  
  37. In [4]: maxp = gm['p'].max()
  38. ...: maxp = maxp.to_frame()
  39. ...: maxp.columns = ['maxp']
  40. ...: maxp
  41. ...:
  42. Out[4]:
  43. maxp
  44. m
  45. m1 0.9
  46. m2 0.8
  47. m3 0.7
  48. m4 0.4
  49.  
  50. In [5]: df = pd.merge(df, count, left_on='m', right_index=True)
  51. ...: df = pd.merge(df, maxp, left_on='m', right_index=True)
  52. ...: df
  53. ...:
  54. Out[5]:
  55. e m p count maxp
  56. 0 e1 m1 0.9 1 0.9
  57. 1 e2 m2 0.2 2 0.8
  58. 2 e3 m2 0.8 2 0.8
  59. 3 e4 m3 0.7 3 0.7
  60. 4 e5 m3 0.1 3 0.7
  61. 5 e6 m3 0.2 3 0.7
  62. 6 e7 m4 0.3 4 0.4
  63. 7 e1 m4 0.1 4 0.4
  64. 8 e2 m4 0.2 4 0.4
  65. 9 e8 m4 0.4 4 0.4
Add Comment
Please, Sign In to add comment