abdullahtarek/tennis_analysis

Nan or Inf values at avg shot/player speed (first few frames)

Opened this issue · 0 comments

Sh-31 commented
  • When calculating player (1/2) average (shot/player) speed we divide by zero because there are no shots yet so we get nan values.
# tennis_analysis/main.py
# lines 118 - 121
player_stats_data_df['player_1_average_shot_speed'] = player_stats_data_df['player_1_total_shot_speed']/player_stats_data_df['player_1_number_of_shots']
player_stats_data_df['player_2_average_shot_speed'] = player_stats_data_df['player_2_total_shot_speed']/player_stats_data_df['player_2_number_of_shots']
player_stats_data_df['player_1_average_player_speed'] = player_stats_data_df['player_1_total_player_speed']/player_stats_data_df['player_2_number_of_shots']
player_stats_data_df['player_2_average_player_speed'] = player_stats_data_df['player_2_total_player_speed']/player_stats_data_df['player_1_number_of_shots']

image

  • One way to fix it is to use .fillna(0)
   # Calculate average speeds and replace NaNs with 0
player_stats_data_df['player_1_average_shot_speed'] = (player_stats_data_df['player_1_total_shot_speed'] / player_stats_data_df['player_1_number_of_shots']).fillna(0)
player_stats_data_df['player_2_average_shot_speed'] = (player_stats_data_df['player_2_total_shot_speed'] / player_stats_data_df['player_2_number_of_shots']).fillna(0)
player_stats_data_df['player_1_average_player_speed'] = (player_stats_data_df['player_1_total_player_speed'] / player_stats_data_df['player_1_number_of_shots']).fillna(0)
player_stats_data_df['player_2_average_player_speed'] = (player_stats_data_df['player_2_total_player_speed'] / player_stats_data_df['player_2_number_of_shots']).fillna(0)

image