Guest User

Untitled

a guest
Aug 15th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.83 KB | None | 0 0
  1. Day | WinningTeamID | LosingTeamID | WinningPoints | LosingPoints | WinningFouls | ... |
  2. 1 13 1 45 5 3
  3. 1 12 4 21 12 4
  4.  
  5. Day | Points | Fouls | ... |
  6. 1 21 4 ...
  7. 2 32 6 ...
  8.  
  9. df[df[WinningTeamID == 12] | [LosingTeamID == 12]]
  10.  
  11. | Day | Outcome | TeamID | Points | Fouls |
  12. | 1 | Winning | 13 | 45 | 3 |
  13. | 1 | Losing | 1 | 5 | NaN |
  14. | 1 | Winning | 12 | 21 | 4 |
  15. | 1 | Losing | 4 | 12 | NaN |
  16.  
  17. import numpy as np
  18. import pandas as pd
  19.  
  20. df = pd.DataFrame({'Day': [1, 1], 'LosingPoints': [5, 12], 'LosingTeamID': [1, 4], 'WinningFouls': [3, 4], 'WinningPoints': [45, 21], 'WinningTeamID': [13, 12]})
  21. df = df.set_index(['Day'])
  22. columns = df.columns.to_series().str.extract(r'^(Losing|Winning)?(.*)', expand=True)
  23. columns = pd.MultiIndex.from_arrays([columns[col] for col in columns],
  24. names=['Outcome', None])
  25. df.columns = columns
  26. df = df.stack(level='Outcome').reset_index()
  27. print(df)
  28.  
  29. Day Outcome Fouls Points TeamID
  30. 0 1 Losing NaN 5 1
  31. 1 1 Winning 3.0 45 13
  32. 2 1 Losing NaN 12 4
  33. 3 1 Winning 4.0 21 12
  34.  
  35. print(df.loc[df['TeamID']==12])
  36. # Day Outcome Fouls Points TeamID
  37. # 3 1 Winning 4.0 21 12
  38.  
  39. In [26]: df.stack(level='Outcome')
  40. Out[26]:
  41. Fouls Points TeamID
  42. Day Outcome
  43. 1 Losing NaN 5 1
  44. Winning 3.0 45 13
  45. Losing NaN 12 4
  46. Winning 4.0 21 12
  47.  
  48. In [29]: df.stack(level='Outcome')
  49. Out[29]:
  50. Day Fouls Points TeamID
  51. Outcome
  52. 0 NaN 1.0 3.0 45 13
  53. Losing NaN NaN 5 1
  54. Winning 1.0 3.0 45 13
  55. 1 NaN 1.0 4.0 21 12
  56. Losing NaN NaN 12 4
  57. Winning 1.0 4.0 21 12
  58.  
  59. columns = df.columns.to_series().str.extract(r'^(Losing|Winning)?(.*)', expand=True)
  60. columns = pd.MultiIndex.from_arrays([columns[col] for col in columns],
  61. names=['Outcome', None])
  62.  
  63. In [47]: df
  64. Out[47]:
  65. Outcome Losing Winning
  66. Points TeamID Fouls Points TeamID
  67. Day
  68. 1 5 1 3 45 13
  69. 1 12 4 4 21 12
  70.  
  71. In [48]: df.stack(level="Outcome")
  72. Out[48]:
  73. Fouls Points TeamID
  74. Day Outcome
  75. 1 Losing NaN 5 1
  76. Winning 3.0 45 13
  77. Losing NaN 12 4
  78. Winning 4.0 21 12
  79.  
  80. df.query['WinningTeamID == 12 | LosingTeamID == 12']
  81.  
  82. df.query('columnX == 15 | columnY == 25')
Add Comment
Please, Sign In to add comment