Added ratings post and positions post - to be tested
This commit is contained in:
parent
5c6d706160
commit
b3cce68576
@ -581,9 +581,7 @@ def calc_positions(bs: pd.DataFrame) -> pd.DataFrame:
|
|||||||
|
|
||||||
|
|
||||||
async def get_or_post_players(stat_df: pd.DataFrame, bat_card_df: pd.DataFrame, bat_rat_df: pd.DataFrame, def_rat_df: pd.DataFrame) -> pd.DataFrame:
|
async def get_or_post_players(stat_df: pd.DataFrame, bat_card_df: pd.DataFrame, bat_rat_df: pd.DataFrame, def_rat_df: pd.DataFrame) -> pd.DataFrame:
|
||||||
# Columns: bbref_id, player_id
|
# Refactor this to support batters or pitchers, make stat dfs optional and send to getorpostbatters/getorpostpitchers
|
||||||
# all_bbref_ids = []
|
|
||||||
# all_player_ids = []
|
|
||||||
all_players = []
|
all_players = []
|
||||||
|
|
||||||
dev_count = 0
|
dev_count = 0
|
||||||
@ -662,7 +660,6 @@ async def get_or_post_players(stat_df: pd.DataFrame, bat_card_df: pd.DataFrame,
|
|||||||
|
|
||||||
dev_count += 1
|
dev_count += 1
|
||||||
|
|
||||||
# new_data = {'key_bbref': all_bbref_ids, 'player_id': all_player_ids}
|
|
||||||
players_df = pd.DataFrame(all_players).set_index('bbref_id')
|
players_df = pd.DataFrame(all_players).set_index('bbref_id')
|
||||||
return players_df
|
return players_df
|
||||||
|
|
||||||
@ -690,6 +687,47 @@ async def post_batting_cards(cards_df: pd.DataFrame):
|
|||||||
raise ValueError(e_msg)
|
raise ValueError(e_msg)
|
||||||
|
|
||||||
|
|
||||||
|
async def post_batting_ratings(ratings_df: pd.DataFrame):
|
||||||
|
all_ratings = []
|
||||||
|
|
||||||
|
def append_ratings(row):
|
||||||
|
vl = row['ratings_vL']
|
||||||
|
vl['player_id'] = row['player_id']
|
||||||
|
|
||||||
|
vr = row['ratings_vR']
|
||||||
|
vr['player_id'] = row['player_id']
|
||||||
|
|
||||||
|
all_ratings.append(vl)
|
||||||
|
all_ratings.append(vr)
|
||||||
|
|
||||||
|
ratings_df.apply(append_ratings, axis=1)
|
||||||
|
resp = await db_put('battingcardratings', payload={'ratings': all_ratings}, timeout=6)
|
||||||
|
if resp is not None:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
e_msg = 'Unable to post batting ratings'
|
||||||
|
logging.debug(e_msg, stack_info=True)
|
||||||
|
raise ValueError(e_msg)
|
||||||
|
|
||||||
|
|
||||||
|
async def post_positions(pos_df: pd.DataFrame):
|
||||||
|
all_pos = []
|
||||||
|
|
||||||
|
def append_positions(row):
|
||||||
|
new_val = row.to_dict()
|
||||||
|
new_val['player_id'] = int(row['player_id'])
|
||||||
|
all_pos.append(new_val)
|
||||||
|
pos_df.apply(append_positions, axis=1)
|
||||||
|
|
||||||
|
resp = await db_put('cardpositions', payload={'positions': all_pos}, timeout=6)
|
||||||
|
if resp is not None:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
e_msg = 'Unable to post positions'
|
||||||
|
logging.debug(e_msg, stack_info=True)
|
||||||
|
raise ValueError(e_msg)
|
||||||
|
|
||||||
|
|
||||||
async def post_batter_data(bs: pd.DataFrame, bc: pd.DataFrame, br: pd.DataFrame, dr: pd.date_range) -> int:
|
async def post_batter_data(bs: pd.DataFrame, bc: pd.DataFrame, br: pd.DataFrame, dr: pd.date_range) -> int:
|
||||||
all_players = await get_or_post_players(bs, bc, br, dr)
|
all_players = await get_or_post_players(bs, bc, br, dr)
|
||||||
|
|
||||||
@ -704,9 +742,26 @@ async def post_batter_data(bs: pd.DataFrame, bc: pd.DataFrame, br: pd.DataFrame,
|
|||||||
await post_batting_cards(bc)
|
await post_batting_cards(bc)
|
||||||
|
|
||||||
# Post Batting Ratings
|
# Post Batting Ratings
|
||||||
|
br = pd.merge(
|
||||||
|
left=br,
|
||||||
|
right=all_players,
|
||||||
|
how='right', #'left',
|
||||||
|
left_on='key_bbref',
|
||||||
|
right_on='bbref_id'
|
||||||
|
)
|
||||||
|
await post_batting_ratings(br)
|
||||||
|
|
||||||
# Post Positions
|
# Post Positions
|
||||||
pass
|
dr = pd.merge(
|
||||||
|
left=dr,
|
||||||
|
right=all_players,
|
||||||
|
how='right', # 'left',
|
||||||
|
left_on='key_bbref',
|
||||||
|
right_on='bbref_id'
|
||||||
|
)
|
||||||
|
await post_positions(dr)
|
||||||
|
|
||||||
|
return len(all_players)
|
||||||
|
|
||||||
|
|
||||||
async def run_batters(data_input_path: str, start_date: int, end_date: int, post_data: bool = False, season_pct: float = 1.0):
|
async def run_batters(data_input_path: str, start_date: int, end_date: int, post_data: bool = False, season_pct: float = 1.0):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user