CoolFace
Apppublic

Gambling/XG

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
process.py46 linesDownload Raw Back to model
1import pandas as pd2from datetime import datetime3from sklearn.model_selection import train_test_split4 5from data.const import (6    COLUMNS_ENCODE,7    ENCODED_COLUMNS8)9 10class EventProcessor:11    def __init__(self, events_file, info_file):12        self.events = pd.read_csv(events_file, sep=",", header=0)13        self.info = pd.read_csv(info_file, sep=",", header=0)14    15    def process(self):16        self.events = self.events.merge(self.info[['id_odsp', 'country', 'date']], on='id_odsp', how='left')17        extract_year = lambda x: datetime.strptime(x, "%Y-%m-%d").year18        self.events['year'] = [extract_year(x) for key, x in enumerate(self.events['date'])]19        self.shots = self.events[self.events.event_type==1]20        self.shots['player'] = self.shots['player'].str.title()21        self.shots['player2'] = self.shots['player2'].str.title()22        self.shots['country'] = self.shots['country'].str.title()23 24class DataEncoder:25    def __init__(self, data):26        self.data = data27    28    def encode_categorical_variables(self):29        encoded_data = pd.get_dummies(self.data.iloc[:,-8:-3], columns=COLUMNS_ENCODE)30        encoded_data.columns = ENCODED_COLUMNS31        encoded_data['is_goal'] = self.data['is_goal']32        self.encoded_data = encoded_data33 34class DataSplitter:35    def __init__(self, data, target, test_size=0.35, random_state=1):36        self.data = data37        self.target = target38        self.test_size = test_size39        self.random_state = random_state40    41    def split(self):42        X_train, X_test, y_train, y_test = train_test_split(self.data, self.target, test_size=self.test_size, random_state=self.random_state)43        self.X_train = X_train44        self.X_test = X_test45        self.y_train = y_train46        self.y_test = y_test