From 882c09cdc345870e071d04f8c681a23ad6a558a4 Mon Sep 17 00:00:00 2001 From: s452662 Date: Tue, 30 Jan 2024 23:46:27 +0100 Subject: [PATCH] changed data filtering --- data_dictionary.txt | 2 +- data_filters.py | 85 +++++++++++++------ fuzzy.py | 14 ++-- main.py | 197 ++++++++++++++++++++++++++++++++++++++++---- rules.py | 118 ++++++++++++++++++++++---- 5 files changed, 351 insertions(+), 65 deletions(-) diff --git a/data_dictionary.txt b/data_dictionary.txt index 7523ed9..7649172 100644 --- a/data_dictionary.txt +++ b/data_dictionary.txt @@ -1,4 +1,4 @@ -link_match : page link of match in Premier League Official website +link_match : page link of match in Premier League Official websitemarkdow season : match season date : match date home_team : home team diff --git a/data_filters.py b/data_filters.py index fcd4af1..76871e4 100644 --- a/data_filters.py +++ b/data_filters.py @@ -1,6 +1,18 @@ import pandas as pd from fuzzy import * + +def zapisz_do_csv(nazwa_pliku, dataframe): + dataframe.to_csv(nazwa_pliku, mode='a', index=False, header=not pd.DataFrame().append(dataframe).empty) + +def podziel_na_partie(dataframe, rozmiar_partii): + for i in range(0, len(dataframe), rozmiar_partii): + yield dataframe.iloc[i:i + rozmiar_partii] + +def przetwarzaj_co_50_rekordow(plik_wejsciowy, plik_wyjsciowy): + dataframe_wejsciowe = pd.read_csv(plik_wejsciowy) + + def generateTrainingData(dataframe): columns = ['season','date','home_team','away_team','result_full','home_passes','away_passes', 'home_possession','away_possession','home_shots','away_shots'] @@ -10,10 +22,20 @@ def generateTrainingData(dataframe): def generateFuzzyLogicData(dataframe): columns = ['season','date','home_team','away_team','result_full','c_home_form_5m','c_away_form_5m',#,'c_home_passes','c_away_passes', # 'c_home_possession','c_away_possession','c_home_shots','c_away_shots', - 'c_home_diff_5m', 'c_away_diff_5m', 'c_home_aggression_5m', - 'c_away_aggression_5m', 'c_home_aggression_season', 'c_away_aggression_season', - 'c_home_form_season','c_away_form_season', - 'c_home_diff_season', 'c_away_diff_season'] + 'c_home_diff_5m', 'c_away_diff_5m',"c_home_form_5s", + 'c_away_form_5s','c_home_diff_5s','c_away_diff_5s' + , 'c_home_aggression_5m', + 'c_away_aggression_5m', 'c_away_shots_5m','c_away_shots_5m', + 'c_away_shots_5btw', 'c_away_shots_5btw', 'c_away_defence_5m', + 'c_away_defence_5m', 'c_away_defence_5btw', 'c_away_defence_5btw', + 'c_home_passing_5m', 'c_away_passing_5m', 'c_home_passing_5btw', + 'c_away_passing_5btw', 'c_away_aggression_5btw', 'c_away_aggression_5btw' + + + #'c_home_aggression_season', 'c_away_aggression_season', + # 'c_home_form_season','c_away_form_season', + # 'c_home_diff_season', 'c_away_diff_season' + ] return dataframe[columns] @@ -30,7 +52,7 @@ def last5Matches(season, teamA, data, df): # Wybierz 5 ostatnich przed daną datą last_before_date = before_given_date.head(5) - return last_before_date + return last_before_date, "_5m" def last5MatchesBtwTeams(teamA, teamB, data, df): subset = df[(((df['home_team'] == teamA) | (df['away_team'] == teamA)) & ((df['home_team'] == teamB) | (df['away_team'] == teamB)))] @@ -38,7 +60,7 @@ def last5MatchesBtwTeams(teamA, teamB, data, df): before_given_date = before_given_date.sort_values(by='date', ascending=False) last_before_date = before_given_date.head(5) - return last_before_date + return last_before_date, "_5btw" def seasonMatches(season, teamA, data, df): # Wybierz rekordy dla danej pary drużyn i sezonu @@ -50,7 +72,7 @@ def seasonMatches(season, teamA, data, df): # Posortuj wg daty w odwrotnej kolejności before_given_date = before_given_date.sort_values(by='date', ascending=False) - return before_given_date + return before_given_date, "_s" def getResult(score,teamHome): x,y = score.split('-') @@ -64,23 +86,23 @@ def getResult(score,teamHome): else: return "loss" -def calculateAggression(matches, team): - aggression = 0 - for index, row in matches.iterrows(): - if team == row['home_team']: - yellow_cards = row['home_yellow_cards'] - red_cards = row['home_red_cards'] - else: - yellow_cards = row['away_yellow_cards'] - red_cards = row['away_red_cards'] - aggression_result = calculateFuzzyAggression(yellow_cards, red_cards) - #print(aggression_result['aggression']) - aggression = aggression + aggression_result['aggression'] - if matches.shape[0] != 0: - aggression_avg = aggression / matches.shape[0] - else: - aggression_avg = 0 - return aggression_avg +# def calculateAggression(matches, team): +# aggression = 0 +# for index, row in matches.iterrows(): +# if team == row['home_team']: +# yellow_cards = row['home_yellow_cards'] +# red_cards = row['home_red_cards'] +# else: +# yellow_cards = row['away_yellow_cards'] +# red_cards = row['away_red_cards'] +# aggression_result = calculateFuzzyAggression(yellow_cards, red_cards) +# #print(aggression_result['aggression']) +# aggression = aggression + aggression_result['aggression'] +# if matches.shape[0] != 0: +# aggression_avg = aggression / matches.shape[0] +# else: +# aggression_avg = 0 +# return aggression_avg def calculatePoints(matches, team): points = 0 @@ -118,4 +140,17 @@ def calculateGoalDifference(matches, team): goal_diff = goal_diff + (y-x) return goal_diff - +def calculateColumn(matches, team, column_name): + result = 0 + for index, row in matches.iterrows(): + if team == row['home_team']: + column = row[column_name] + else: + column = row[column_name] + result = result + column + if matches.shape[0] != 0: + result_avg = result / matches.shape[0] + else: + result_avg = 0 + return result_avg + diff --git a/fuzzy.py b/fuzzy.py index 4309a31..ed51aa2 100644 --- a/fuzzy.py +++ b/fuzzy.py @@ -10,7 +10,7 @@ FS = FuzzySystem() # odbiory i wslizgi (xDef) - Michał, ekspert od xDef # statystyki z calego sezonu - Wojtek OK # 5 ostatnich spotkan miedzy druzynami - Witek -def categorize_fuzzy_passes(passes,possession): +def categorizeFuzzyPasses(passes,possession): FS.set_crisp_output_value("low", 0.0) @@ -64,10 +64,10 @@ def categorize_fuzzy_passes(passes,possession): pass_domination = FS.inference() - return pass_domination + return pass_domination['pass_domination'] -def categorize_fuzzy_defence(tackles,clearances): +def categorizeFuzzyDefence(tackles,clearances): FS.set_crisp_output_value("low", 0.0) @@ -113,9 +113,9 @@ def categorize_fuzzy_defence(tackles,clearances): defence_actions = FS.inference() - return defence_actions + return defence_actions['defence_actions'] -def categorize_fuzzy_shots(shots_overall, shots_on_target): +def categorizeFuzzyShots(shots_overall, shots_on_target): FS.set_crisp_output_value("low", 0.0) FS.set_crisp_output_value("average", 0.5) @@ -169,7 +169,7 @@ def categorize_fuzzy_shots(shots_overall, shots_on_target): quality_of_shots = FS.inference() - return quality_of_shots + return quality_of_shots['quality_of_shots'] def calculateFuzzyAggression(yellow_cards, red_cards): FS.set_crisp_output_value("low", 0.0) @@ -219,4 +219,4 @@ def calculateFuzzyAggression(yellow_cards, red_cards): FS.set_variable("red_cards", red_cards) aggression = FS.inference() - return aggression \ No newline at end of file + return aggression['aggression'] \ No newline at end of file diff --git a/main.py b/main.py index 72befe3..b002c79 100644 --- a/main.py +++ b/main.py @@ -23,17 +23,27 @@ from sklearn.metrics import classification_report if __name__ == "__main__": + df = pd.read_csv('df_full_premierleague.csv') - result = last5Matches('10/11', 'Stoke City', '2010-10-02', df) + + + + + + ''' + df = pd.read_csv('df_full_premierleague.csv') + result = last5Matches('10/11', 'Stoke City', '2010-10-02', df)[0] #print(result.to_markdown()) #print(result) - result = last5Matches('10/11', 'Blackburn Rovers', '2010-10-02', df) + result = last5Matches('10/11', 'Blackburn Rovers', '2010-10-02', df)[0] #print(result.to_markdown()) #print(result) print(calculatePoints(result,'Blackburn Rovers')) print(calculateGoalDifference(result, 'Blackburn Rovers')) + ''' + # df = generateTrainingData(df) # df = add_column(df, categorize_passes, "c_away_passes", "away_passes") # df = add_column(df, categorize_passes, "c_home_passes", "home_passes") @@ -44,22 +54,159 @@ if __name__ == "__main__": # df = add_column(df, categorize_shots, "c_away_shots", "away_shots") # df = add_column(df, categorize_shots, "c_home_shots", "home_shots") # print(df.columns) + ############################################################################################### + # df = add_column(df, getColumnMethod(df, True, 'home_yellow_cards', seasonMatches), "c_home_yellow_cards_s") + # df = add_column(df, getColumnMethod(df, True, 'away_yellow_cards', seasonMatches), "c_away_yellow_cards_s") + # df = add_column(df, getColumnMethod(df, True, 'home_red_cards', seasonMatches), "c_home_red_cards_s") + # df = add_column(df, getColumnMethod(df, True, 'away_red_cards', seasonMatches), "c_away_red_cards_s") + df = df.sort_values(by='date', ascending=False) + + df = add_column(df, getColumnMethod(df, True, 'home_yellow_cards', last5Matches), "c_home_yellow_cards_5m") + df = add_column(df, getColumnMethod(df, False, 'away_yellow_cards', last5Matches), "c_away_yellow_cards_5m") + df = add_column(df, getColumnMethod(df, True, 'home_red_cards', last5Matches), "c_home_red_cards_5m") + df = add_column(df, getColumnMethod(df, False, 'away_red_cards', last5Matches), "c_away_red_cards_5m") + + df = add_column(df, getColumnMethod5Btw(df, True, 'home_yellow_cards', last5MatchesBtwTeams), + "c_home_yellow_cards_5btw") + df = add_column(df, getColumnMethod5Btw(df, False, 'away_yellow_cards', last5MatchesBtwTeams), + "c_away_yellow_cards_5btw") + df = add_column(df, getColumnMethod5Btw(df, True, 'home_red_cards', last5MatchesBtwTeams), "c_home_red_cards_5btw") + df = add_column(df, getColumnMethod5Btw(df, False, 'away_red_cards', last5MatchesBtwTeams), "c_away_red_cards_5btw") + + + + ################################################################################################################### + # df = add_column(df, getColumnMethod(df, True, 'home_shots', seasonMatches), "c_home_shots_s") + # df = add_column(df, getColumnMethod(df, True, 'away_shots', seasonMatches), "c_away_shots_s") + # df = add_column(df, getColumnMethod(df, True, 'home_shots_on_target', seasonMatches), "c_home_shots_on_target_s") + # df = add_column(df, getColumnMethod(df, True, 'away_shots_on_target', seasonMatches), "c_away_shots_on_target_s") + + df = add_column(df, getColumnMethod(df, True, 'home_shots', last5Matches), "c_home_shots_5m") + df = add_column(df, getColumnMethod(df, False, 'away_shots', last5Matches), "c_away_shots_5m") + df = add_column(df, getColumnMethod(df, True, 'home_shots_on_target', last5Matches), "c_home_shots_on_target_5m") + df = add_column(df, getColumnMethod(df, False, 'away_shots_on_target', last5Matches), "c_away_shots_on_target_5m") + + df = add_column(df, getColumnMethod5Btw(df, True, 'home_shots', last5MatchesBtwTeams), "c_home_shots") + df = add_column(df, getColumnMethod5Btw(df, False, 'away_shots', last5MatchesBtwTeams), "c_away_shots") + df = add_column(df, getColumnMethod5Btw(df, True, 'home_shots_on_target', last5MatchesBtwTeams), + "c_home_shots_on_target_5btw") + df = add_column(df, getColumnMethod5Btw(df, False, 'away_shots_on_target', last5MatchesBtwTeams), + "c_away_shots_on_target_5btw") + + + ################################################################################################################################### + # df = add_column(df, getColumnMethod(df, True, 'home_tackles', seasonMatches), "c_home_tackles_s") + # df = add_column(df, getColumnMethod(df, True, 'away_tackles', seasonMatches), "c_away_tackles_s") + # df = add_column(df, getColumnMethod(df, True, 'home_clearances', seasonMatches), "c_home_clearances_s") + # df = add_column(df, getColumnMethod(df, True, 'away_clearances', seasonMatches), "c_away_clearances_s") + + df = add_column(df, getColumnMethod(df, True, 'home_tackles', last5Matches), "c_home_tackles_5m") + df = add_column(df, getColumnMethod(df, False, 'away_tackles', last5Matches), "c_away_tackles_5m") + df = add_column(df, getColumnMethod(df, True, 'home_clearances', last5Matches), "c_home_clearances_5m") + df = add_column(df, getColumnMethod(df, False, 'away_clearances', last5Matches), "c_away_clearances_5m") + + df = add_column(df, getColumnMethod5Btw(df, True, 'home_tackles', last5MatchesBtwTeams), "c_home_tackles_5btw") + df = add_column(df, getColumnMethod5Btw(df, False, 'away_tackles', last5MatchesBtwTeams), "c_away_tackles_5btw") + df = add_column(df, getColumnMethod5Btw(df, True, 'home_clearances', last5MatchesBtwTeams), + "c_home_clearances_5btw") + df = add_column(df, getColumnMethod5Btw(df, False, 'away_clearances', last5MatchesBtwTeams), + "c_away_clearances_5btw") + + + + #################################################################################################################################### + # df = add_column(df, getColumnMethod(df, True, 'home_passes', seasonMatches), "c_home_passes_s") + # df = add_column(df, getColumnMethod(df, True, 'away_passes', seasonMatches), "c_away_passes_s") + # df = add_column(df, getColumnMethod(df, True, 'home_possession', seasonMatches), "c_home_possession_s") + # df = add_column(df, getColumnMethod(df, True, 'away_possession', seasonMatches), "c_away_possession_s") + + df = add_column(df, getColumnMethod(df, True, 'home_passes', last5Matches), "c_home_passes_5m") + df = add_column(df, getColumnMethod(df, False, 'away_passes', last5Matches), "c_away_passes_5m") + df = add_column(df, getColumnMethod(df, True, 'home_possession', last5Matches), "c_home_possession_5m") + df = add_column(df, getColumnMethod(df, False, 'away_possession', last5Matches), "c_away_possession_5m") + + df = add_column(df, getColumnMethod5Btw(df, True, 'home_passes', last5MatchesBtwTeams), "c_home_passes_5btw") + df = add_column(df, getColumnMethod5Btw(df, False, 'away_passes', last5MatchesBtwTeams), "c_away_passes_5btw") + df = add_column(df, getColumnMethod5Btw(df, True, 'home_possession', last5MatchesBtwTeams), + "c_home_possession_5btw") + df = add_column(df, getColumnMethod5Btw(df, False, 'away_possession', last5MatchesBtwTeams), + "c_away_possession_5btw") + + # TU + + + ########################################################################################################################################## df = add_column(df, get_method(df, True, categorize_points, last5Matches), "c_home_form_5m") df = add_column(df, get_method(df, False, categorize_points, last5Matches), "c_away_form_5m") - df = add_column(df, get_method(df, True, categorize_diff, last5Matches), "c_home_diff_5m")#categorize_diff - df = add_column(df, get_method(df, False, categorize_diff,last5Matches), "c_away_diff_5m") - df = add_column(df, get_method(df, True, categorize_aggression, last5Matches), "c_home_aggression_5m")#categorize_diff - df = add_column(df, get_method(df, False, categorize_aggression,last5Matches), "c_away_aggression_5m") - df = add_column(df, get_method(df, True, categorize_points, seasonMatches), "c_home_form_season") - df = add_column(df, get_method(df, False, categorize_points, seasonMatches), "c_away_form_season") + df = add_column(df, get_method(df, True, categorize_diff, seasonMatches), "c_home_diff_5m") + df = add_column(df, get_method(df, False, categorize_diff, seasonMatches), "c_away_diff_5m") - df = add_column(df, get_method(df, True, categorize_diff, seasonMatches), "c_home_diff_season")#categorize_diff - df = add_column(df, get_method(df, False, categorize_diff,seasonMatches), "c_away_diff_season") + df = add_column(df, get_method(df, True, categorize_points_Btw, last5MatchesBtwTeams), "c_home_form_5btw") + df = add_column(df, get_method(df, False, categorize_points_Btw, last5MatchesBtwTeams), "c_away_form_5btw") - df = add_column(df, get_method(df, True, categorize_aggression, seasonMatches), "c_home_aggression_season")#categorize_diff - df = add_column(df, get_method(df, False, categorize_aggression,seasonMatches), "c_away_aggression_season") + df = add_column(df, get_method(df, True, categorize_diff_Btw, last5MatchesBtwTeams), "c_home_diff_5btw") + df = add_column(df, get_method(df, False, categorize_diff_Btw, last5MatchesBtwTeams), "c_away_diff_5btw") + + df = add_column(df, get_method(df, True, categorize_points, seasonMatches), "c_home_form_5s") + df = add_column(df, get_method(df, False, categorize_points, seasonMatches), "c_away_form_5s") + + df = add_column(df, get_method(df, True, categorize_diff, seasonMatches), "c_home_diff_5s") + df = add_column(df, get_method(df, False, categorize_diff, seasonMatches), "c_away_diff_5s") + + df.to_csv('df.csv', index=False) +#TU sie zapisuje zbior + + rozmiar_partii = 50 + for part in podziel_na_partie(df, rozmiar_partii): + + + part = add_column(part, + getFuzzyMethod(part, calculateFuzzyAggression, True, "c_home_yellow_cards_5m", "c_home_red_cards_5m"), + "c_home_aggression_5m") + part = add_column(part, getFuzzyMethod(part, calculateFuzzyAggression, False, "c_away_yellow_cards_5m", + "c_away_red_cards_5m"), "c_away_aggression_5m") + + part = add_column(part, getFuzzyMethod(part, calculateFuzzyAggression, True, "c_home_yellow_cards_5btw", + "c_home_red_cards_5btw"), "c_home_aggression_5btw") + part = add_column(part, getFuzzyMethod(part, calculateFuzzyAggression, False, "c_away_yellow_cards_5btw", + "c_away_red_cards_5btw"), "c_away_aggression_5btw") + + part = add_column(part, getFuzzyMethod(part, categorizeFuzzyShots, True, "c_home_shots_5m", "c_home_shots_5m"), + "c_home_shots_5m") + part = add_column(part, getFuzzyMethod(part, categorizeFuzzyShots, False, "c_away_shots_5m", "c_away_shots_5m"), + "c_away_shots_5m") + + part = add_column(part, getFuzzyMethod(part, categorizeFuzzyShots, True, "c_home_shots_on_target_5btw", + "c_home_shots_on_target_5btw"), "c_home_shots_5btw") + part = add_column(part, getFuzzyMethod(part, categorizeFuzzyShots, False, "c_away_shots_on_target_5btw", + "c_away_shots_on_target_5btw"), "c_away_shots_5btw") + + part = add_column(part, getFuzzyMethod(part, categorizeFuzzyDefence, True, "c_home_tackles_5m", "c_home_clearances_5m"), + "c_home_defence_5m") + part = add_column(part, getFuzzyMethod(part, categorizeFuzzyDefence, False, "c_away_tackles_5m", "c_away_clearances_5m"), + "c_away_defence_5m") + + part = add_column(part, + getFuzzyMethod(part, categorizeFuzzyDefence, True, "c_home_tackles_5btw", "c_home_clearances_5btw"), + "c_home_defence_5btw") + part = add_column(part, + getFuzzyMethod(part, categorizeFuzzyDefence, False, "c_away_tackles_5btw", "c_away_clearances_5btw"), + "c_away_defence_5btw") + part = add_column(part, getFuzzyMethod(part, categorizeFuzzyPasses, True, "c_home_passes_5m", "c_home_possession_5m"), + "c_home_passing_5m") + part = add_column(part, getFuzzyMethod(part, categorizeFuzzyPasses, False, "c_away_passes_5m", "c_away_possession_5m"), + "c_away_passing_5m") + + part = add_column(part, getFuzzyMethod(part, categorizeFuzzyPasses, True, "c_home_passes_5btw", "c_home_possession_5btw"), + "c_home_passing_5btw") + part = add_column(part, + getFuzzyMethod(part, categorizeFuzzyPasses, False, "c_away_passes_5btw", "c_away_possession_5btw"), + "c_away_passing_5btw") + + + zapisz_do_csv("df_parts", part) df = generateFuzzyLogicData(df) @@ -86,8 +233,26 @@ if __name__ == "__main__": print(f'Dokładność modelu: {accuracy}') print(classification_report(y_test, y_pred)) - result = last5Matches('10/11', 'Manchester United', '2010-12-16', df) - print(calculatePoints(result,'Manchester United')) - print(calculateGoalDifference(result, 'Manchester United')) - print(categorize_fuzzy_passes(450,50)) \ No newline at end of file + #print(categorize_fuzzy_passes(450,50)) + + #df.to_csv('df.csv', index=False) + + + # df = add_column(df, get_method(df, True, categorize_aggression, last5Matches), "c_home_aggression_5m")#categorize_diff + # df = add_column(df, get_method(df, False, categorize_aggression,last5Matches), "c_away_aggression_5m") + # df = add_column(df, get_method(df, True, categorize_points, seasonMatches), "c_home_form_season") + # df = add_column(df, get_method(df, False, categorize_points, seasonMatches), "c_away_form_season") + + #df = add_column(df, get_method(df, True, categorize_diff, seasonMatches), "c_home_diff_season")#categorize_diff + # df = add_column(df, get_method(df, False, categorize_diff,seasonMatches), "c_away_diff_season") + + # df = add_column(df, get_method(df, True, categorize_aggression, seasonMatches), "c_home_aggression_season")#categorize_diff + # df = add_column(df, get_method(df, False, categorize_aggression,seasonMatches), "c_away_aggression_season") + + + #df = add_column(df, get_method(df, True, categorize_points, last5MatchesBtwTeams), "c_home_form_5btw") + #df = add_column(df, get_method(df, False, categorize_points, last5MatchesBtwTeams), "c_away_form_5btw") + + #df = add_column(df, get_method(df, True, categorize_diff, last5MatchesBtwTeams), "c_home_diff_5btw")#categorize_diff + #df = add_column(df, get_method(df, False, categorize_diff,last5MatchesBtwTeams), "c_away_diff_5btw") \ No newline at end of file diff --git a/rules.py b/rules.py index 9112662..bcaa141 100644 --- a/rules.py +++ b/rules.py @@ -28,10 +28,10 @@ def categorize_possesion(shots): def categorize_points(data, row, teamHome, matches_type): if teamHome: - data_5 = matches_type(row['season'], row['home_team'], row['date'], data) + data_5 = matches_type(row['season'], row['home_team'], row['date'], data)[0] points = calculatePoints(data_5,row['home_team']) else: - data_5 = matches_type(row['season'], row['away_team'], row['date'], data) + data_5 = matches_type(row['season'], row['away_team'], row['date'], data)[0] points = calculatePoints(data_5,row['away_team']) if points <=1: return 0 @@ -40,12 +40,30 @@ def categorize_points(data, row, teamHome, matches_type): else: return 1 +def categorize_points_Btw(data, row, teamHome, matches_type): + if teamHome: + data_5 = matches_type(row['home_team'], row['away_team'], row['date'], data)[0] + points = calculatePoints(data_5,row['home_team']) + else: + data_5 = matches_type(row['home_team'], row['away_team'], row['date'], data)[0] + points = calculatePoints(data_5,row['away_team']) + if points <=1: + return 0 + elif points >=2: + return 2 + else: + return 1 + + + + def get_method(data, home_away, method, matches_type): values = [] for index, row in data.iterrows(): values.append(method(data, row, home_away, matches_type)) return values + def get_points_home(data): points = [] for index, row in data.iterrows(): @@ -65,28 +83,53 @@ def get_points_away(data): def categorize_diff(data, row, teamHome, matches_type): if teamHome: - data_5 = matches_type(row['season'], row['home_team'], row['date'], data) + data_5 = matches_type(row['season'], row['home_team'], row['date'], data)[0] diff = calculateGoalDifference(data_5,row['home_team']) else: - data_5 = matches_type(row['season'], row['away_team'], row['date'], data) + data_5 = matches_type(row['season'], row['away_team'], row['date'], data)[0] + diff = calculateGoalDifference(data_5,row['away_team']) + if diff <=0: + return 0 + else: + return 1 + +def categorize_diff_Btw(data, row, teamHome, matches_type): + if teamHome: + data_5 = matches_type(row['home_team'], row['away_team'], row['date'], data)[0] + diff = calculateGoalDifference(data_5,row['home_team']) + else: + data_5 = matches_type(row['home_team'], row['away_team'], row['date'], data)[0] + diff = calculateGoalDifference(data_5,row['away_team']) + if diff <=0: + return 0 + else: + return 1 + + +def categorize_diff(data, row, teamHome, matches_type): + if teamHome: + data_5 = matches_type(row['season'], row['home_team'], row['date'], data)[0] + diff = calculateGoalDifference(data_5,row['home_team']) + else: + data_5 = matches_type(row['season'], row['away_team'], row['date'], data)[0] diff = calculateGoalDifference(data_5,row['away_team']) if diff <=0: return 0 else: return 1 -def categorize_aggression(data, row, teamHome, matches_type): - if teamHome: - data_5 = matches_type(row['season'], row['home_team'], row['date'], data) - diff = calculateAggression(data_5,row['home_team']) - else: - data_5 = matches_type(row['season'], row['away_team'], row['date'], data) - diff = calculateAggression(data_5,row['away_team']) - return diff - # if diff <=0: - # return 0 - # else: - # return 1 +# def categorize_aggression(data, row, teamHome, matches_type): +# if teamHome: +# data_5 = matches_type(row['season'], row['home_team'], row['date'], data) +# diff = calculateAggression(data_5,row['home_team']) +# else: +# data_5 = matches_type(row['season'], row['away_team'], row['date'], data) +# diff = calculateAggression(data_5,row['away_team']) +# return diff +# # if diff <=0: +# # return 0 +# # else: +# # return 1 def get_diff_home(data): points = [] for index, row in data.iterrows(): @@ -119,3 +162,46 @@ def get_result_list(df, home_team): for score in df['result_full']: results.append(getResult(score,home_team)) return results + +def getColumnMethod(data, home_away, column, matches_type): + values = [] + for index, row in data.iterrows(): + values.append(getColumnByMatches(data, row, home_away, matches_type,column)) + return values + +def getColumnMethod5Btw(data, home_away, column, matches_type): + values = [] + for index, row in data.iterrows(): + values.append(getColumnByMatches5Btw(data, row, home_away, matches_type,column)) + return values + +def getFuzzyMethod(data, method, home_away, frist_column, second_column): + values = [] + for index, row in data.iterrows(): + values.append(getFuzzyByMatches(method, row, home_away, frist_column, second_column)) + return values + +def getColumnByMatches(data, row, teamHome, matches_type, column): + if teamHome: + data_5, end = matches_type(row['season'], row['home_team'], row['date'], data) + result = calculateColumn(data_5, row['home_team'], column) + else: + data_5, end = matches_type(row['season'], row['away_team'], row['date'], data) + result = calculateColumn(data_5, row['away_team'], column) + return result + +def getColumnByMatches5Btw(data, row, teamHome, matches_type, column): + if teamHome: + data_5, end = last5MatchesBtwTeams(row['home_team'], row['away_team'], row['date'], data) + result = calculateColumn(data_5, row['home_team'], column) + else: + data_5, end = matches_type(row['home_team'], row['away_team'], row['date'], data) + result = calculateColumn(data_5, row['away_team'], column) + return result + +def getFuzzyByMatches(method, row, teamHome, frist_column, second_column): + if teamHome: + result = method(row[frist_column], row[second_column]) + else: + result = method(row[frist_column], row[second_column]) + return result \ No newline at end of file