def test_2015_playoffs_query(self): queried_df = utils.get_nfldb_play_data(season_years=[2015], season_types=["Postseason"]) expected_df = pd.DataFrame({ 'gsis_id': [ '2016010900', '2016010900', '2016010900', '2016010900', '2016010900' ], 'drive_id': [1, 1, 2, 2, 2], 'play_id': [36, 54, 70, 88, 109], 'seconds_elapsed': [0., 11., 11., 11., 45.], 'offense_team': ['HOU', 'KC', 'KC', 'HOU', 'HOU'], 'yardline': [-15., 35, -15, -30, -26], 'down': [0, 0, 0, 1, 2], 'yards_to_go': [0, 0, 0, 10, 6], 'home_team': ['HOU', 'HOU', 'HOU', 'HOU', 'HOU'], 'away_team': ['KC', 'KC', 'KC', 'KC', 'KC'], 'offense_won': [False, True, True, False, False], 'quarter': ['Q1', 'Q1', 'Q1', 'Q1', 'Q1'], 'curr_home_score': [0, 0, 0, 0, 0], 'curr_away_score': [0, 6, 7, 7, 7] }) expected_df['down'] = expected_df['down'].astype(np.int8) pd.util.testing.assert_frame_equal(queried_df[:5].sort_index(axis=1), expected_df.sort_index(axis=1), check_column_type=False)
def test_2009_regular_season_query(self): queried_df = utils.get_nfldb_play_data(season_years=[2009], season_types=["Regular"]) expected_df = pd.DataFrame({ 'gsis_id': [ '2009091000', '2009091000', '2009091000', '2009091000', '2009091000' ], 'drive_id': [1, 1, 1, 1, 1], 'play_id': [46, 68, 92, 113, 139], 'seconds_elapsed': [0., 7, 44, 85, 93], 'offense_team': ['TEN', 'PIT', 'PIT', 'PIT', 'PIT'], 'yardline': [-20., -8, -3, -6, -6], 'down': [0, 1, 2, 3, 4], 'yards_to_go': [0, 10, 5, 8, 8], 'home_team': ['PIT', 'PIT', 'PIT', 'PIT', 'PIT'], 'away_team': ['TEN', 'TEN', 'TEN', 'TEN', 'TEN'], 'offense_won': [False, True, True, True, True], 'quarter': ['Q1', 'Q1', 'Q1', 'Q1', 'Q1'], 'curr_home_score': [0, 0, 0, 0, 0], 'curr_away_score': [0, 0, 0, 0, 0] }) expected_df['down'] = expected_df['down'].astype(np.int8) pd.util.testing.assert_frame_equal(queried_df[:5].sort_index(axis=1), expected_df.sort_index(axis=1), check_column_type=False)
def test_standard_play_mock(self, monkeypatch): def mockreturn_engine(): return True def mockreturn_query_string(season_years, season_types): return True def mockreturn_read_sql(sql_string, engine): return self.test_df monkeypatch.setattr(utils, 'connect_nfldb', mockreturn_engine) monkeypatch.setattr(utils, '_make_nfldb_query_string', mockreturn_query_string) monkeypatch.setattr(pd, 'read_sql', mockreturn_read_sql) expected_df = pd.DataFrame({ 'gsis_id': [0, 0, 0, 0, 0, 1, 1, 1, 1, 1], 'drive_id': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'play_id': [1, 2, 3, 4, 5, 1, 2, 3, 4, 5], 'seconds_elapsed': [0.0, 152.0, 354.0, 354.0, 0.0, 840.0, 840.0, 875.0, 900.0, 900.0], 'offense_team': [ "HOU", "KC", "KC", "HOU", "HOU", "UNK", "DEN", "DEN", "CAR", "UNK" ], 'yardline': [-15, 35, -15, -30, -26, np.nan, 48, -15, -18, np.nan], 'down': [0, 0, 0, 1, 2, 0, 1, 0, 1, 0], 'yards_to_go': [0, 0, 0, 10, 6, 0, 2, 0, 10, 0], 'home_team': [ "HOU", "HOU", "HOU", "HOU", "HOU", "DEN", "DEN", "DEN", "DEN", "DEN" ], 'away_team': ["KC", "KC", "KC", "KC", "KC", "CAR", "CAR", "CAR", "CAR", "CAR"], 'offense_won': [False, False, False, False, False, True, True, True, True, True], 'quarter': ["Q1", "Q1", "Q1", "Q1", "Q2", "OT", "OT", "OT2", "OT3", "OT"], 'curr_home_score': [0, 0, 0, 0, 0, 0, 0, 7, 7, 7], 'curr_away_score': [0, 6, 7, 7, 7, 0, 0, 0, 0, 0] }) expected_df['down'] = expected_df['down'].astype(np.int8) pd.util.testing.assert_frame_equal( utils.get_nfldb_play_data().sort_index(axis=1), expected_df.sort_index(axis=1))
import pandas as pd from nflwin import utilities data = utilities.get_nfldb_play_data( season_years=[2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017], season_types=["Regular"]) a = pd.DataFrame(a) a.to_csv("nfl_wp_data.csv") from nflwin.model import WPModel standard_model = WPModel.load_model() wp = standard_model.predict_wp(data) b = pd.DataFrame(wp) b.to_csv("nfl_wp.csv")