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:
|
||||
# Columns: bbref_id, player_id
|
||||
# all_bbref_ids = []
|
||||
# all_player_ids = []
|
||||
# Refactor this to support batters or pitchers, make stat dfs optional and send to getorpostbatters/getorpostpitchers
|
||||
all_players = []
|
||||
|
||||
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
|
||||
|
||||
# new_data = {'key_bbref': all_bbref_ids, 'player_id': all_player_ids}
|
||||
players_df = pd.DataFrame(all_players).set_index('bbref_id')
|
||||
return players_df
|
||||
|
||||
@ -690,6 +687,47 @@ async def post_batting_cards(cards_df: pd.DataFrame):
|
||||
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:
|
||||
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)
|
||||
|
||||
# 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
|
||||
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):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user