Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Day | WinningTeamID | LosingTeamID | WinningPoints | LosingPoints | WinningFouls | ... |
- 1 13 1 45 5 3
- 1 12 4 21 12 4
- Day | Points | Fouls | ... |
- 1 21 4 ...
- 2 32 6 ...
- df[df[WinningTeamID == 12] | [LosingTeamID == 12]]
- | Day | Outcome | TeamID | Points | Fouls |
- | 1 | Winning | 13 | 45 | 3 |
- | 1 | Losing | 1 | 5 | NaN |
- | 1 | Winning | 12 | 21 | 4 |
- | 1 | Losing | 4 | 12 | NaN |
- import numpy as np
- import pandas as pd
- df = pd.DataFrame({'Day': [1, 1], 'LosingPoints': [5, 12], 'LosingTeamID': [1, 4], 'WinningFouls': [3, 4], 'WinningPoints': [45, 21], 'WinningTeamID': [13, 12]})
- df = df.set_index(['Day'])
- columns = df.columns.to_series().str.extract(r'^(Losing|Winning)?(.*)', expand=True)
- columns = pd.MultiIndex.from_arrays([columns[col] for col in columns],
- names=['Outcome', None])
- df.columns = columns
- df = df.stack(level='Outcome').reset_index()
- print(df)
- Day Outcome Fouls Points TeamID
- 0 1 Losing NaN 5 1
- 1 1 Winning 3.0 45 13
- 2 1 Losing NaN 12 4
- 3 1 Winning 4.0 21 12
- print(df.loc[df['TeamID']==12])
- # Day Outcome Fouls Points TeamID
- # 3 1 Winning 4.0 21 12
- In [26]: df.stack(level='Outcome')
- Out[26]:
- Fouls Points TeamID
- Day Outcome
- 1 Losing NaN 5 1
- Winning 3.0 45 13
- Losing NaN 12 4
- Winning 4.0 21 12
- In [29]: df.stack(level='Outcome')
- Out[29]:
- Day Fouls Points TeamID
- Outcome
- 0 NaN 1.0 3.0 45 13
- Losing NaN NaN 5 1
- Winning 1.0 3.0 45 13
- 1 NaN 1.0 4.0 21 12
- Losing NaN NaN 12 4
- Winning 1.0 4.0 21 12
- columns = df.columns.to_series().str.extract(r'^(Losing|Winning)?(.*)', expand=True)
- columns = pd.MultiIndex.from_arrays([columns[col] for col in columns],
- names=['Outcome', None])
- In [47]: df
- Out[47]:
- Outcome Losing Winning
- Points TeamID Fouls Points TeamID
- Day
- 1 5 1 3 45 13
- 1 12 4 4 21 12
- In [48]: df.stack(level="Outcome")
- Out[48]:
- Fouls Points TeamID
- Day Outcome
- 1 Losing NaN 5 1
- Winning 3.0 45 13
- Losing NaN 12 4
- Winning 4.0 21 12
- df.query['WinningTeamID == 12 | LosingTeamID == 12']
- df.query('columnX == 15 | columnY == 25')
Add Comment
Please, Sign In to add comment