-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3_merge.py
More file actions
82 lines (62 loc) · 3.26 KB
/
Copy path3_merge.py
File metadata and controls
82 lines (62 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import pandas as pd
import numpy as np
import datetime
from difflib import SequenceMatcher
def similar(a, b):
return SequenceMatcher(None, a, b).ratio()
df_resultados = pd.read_csv('input/resultados_partidos.csv')
map_columns = { 'Season':'temporada',
'Date':'fecha_uk',
'Time':'hora',
'Home':'equipo_local',
'Away':'equipo_visitante',
'HG':'equipo_local_goles',
'AG':'equipo_visitante_goles',
'Res':'equipo_ganador'}
df_resultados = df_resultados[map_columns.keys()]
df_resultados = df_resultados.rename(columns=map_columns)
print(df_resultados.head())
df_resultados['fecha_hora_uk'] = pd.to_datetime(df_resultados['fecha_uk']+ ' ' +df_resultados['hora'])
df_resultados['fecha_hora_mexico'] = df_resultados['fecha_hora_uk'].dt.tz_localize('UTC').dt.tz_convert('America/Mexico_City')
df_resultados['fecha_mexico'] = pd.to_datetime(df_resultados['fecha_hora_mexico'].apply(lambda x: x.date()))
df_resultados['fecha_uk'] = pd.to_datetime(df_resultados.fecha_uk)
df_ocupacion = pd.read_csv('output/bbva_matches.csv')
df_ocupacion['fecha_mexico'] = pd.to_datetime(df_ocupacion.fecha)
df_ocupacion['fecha_hora'] = pd.to_datetime(df_ocupacion['fecha']+ ' ' +df_ocupacion['hora_partido'])
map_equipos = {
'Chiapas': 'Jaguares de Chiapas',
'Queretaro': 'Gallos Blancos de Querétaro',
'Monterrey':'Rayados de Monterrey',
'Monarcas': 'Monarcas Morelia',
'Club Leon': 'León',
'Club America':'América',
'Atl. San Luis': 'Club Atlético de San Luis',
'U.A.N.L.- Tigres': 'Tigres de la U.A.N.L.',
'U.N.A.M.- Pumas':'Universidad Nacional',
'Puebla': 'Puebla F.C.',
'Guadalajara Chivas': 'Guadalajara',
'Veracruz':'Tiburones Rojos de Veracruz',
'Juarez' :'FC Juárez'
}
#! There could be an error in the database as Universidad de Guadalajara doesn't appear
#! It could have been merge with Guadalajara Chivas ()
#TODO We will discover in the merge if something happened to the Guadalajara Universidad Team
df_resultados['equipo_local'] = df_resultados['equipo_local'].replace(map_equipos)
df_resultados['equipo_visitante'] = df_resultados['equipo_visitante'].replace(map_equipos)
def compare_teams(df_resultados, df_ocupacion):
equipos_resultados = df_resultados.equipo_local.unique()
equipos_ocupacion = df_ocupacion.equipo_local.unique()
for club_ocupacion in equipos_ocupacion:
for club_result in equipos_resultados:
if similar(club_ocupacion, club_result) > .5:
print("Similar names: {} {} ".format(club_ocupacion, club_result))
#TODO Create function that iterates trough the number of hours in df_resultados.fecha_hora to complete all the missing joins
#! Open test_left and test_right in excel to detect differences.
test = df_resultados.merge(df_ocupacion, on = ['fecha_mexico', 'equipo_local', 'equipo_visitante'], how='outer', indicator=True)
ocupacion_right = test[test._merge == 'right_only'][df_ocupacion.columns]
df_resultados = ocupacion_right
df_resultados
test2 = df_resultados.merge(ocupacion_right, on = ['fecha_mexico', 'equipo_local', 'equipo_visitante'], how='outer', indicator=True)
rightonly_index = ocupacion_right[['fecha_mexico', 'equipo_local', 'equipo_visitante']]
test_left = test[test._merge == 'left_only']
test_both = test[test._merge == 'both']