Skip to content

Commit e5a1179

Browse files
Cleanup: standardize CSV names (passing.csv, reporte_mediocampo.csv), remove redundancies, fix scripts and tests
1 parent 37c18d9 commit e5a1179

10 files changed

Lines changed: 31 additions & 108 deletions

Passing 2024-2025 Manchester United - Passing.csv

Lines changed: 0 additions & 37 deletions
This file was deleted.

README.md

Lines changed: 21 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,71 +2,42 @@
22

33
Proyecto: Análisis de pases — Manchester United 2024-2025
44

5-
Contenido:
6-
- `Passing 2024-2025 Manchester United - Passing (1).csv`: datos de pases y estadísticas por jugador.
7-
- `reporte_mediocampo.csv`: reporte filtrado y métricas específicas para mediocampistas.
8-
- `analisis_mediocampo_united (1).png`, `grafico_pases_united (1).png`: visualizaciones generadas.
5+
Descripción:
6+
Repositorio con datos y scripts para analizar la eficiencia de pases del Manchester United (temporada 2024-2025). Contiene un CSV con estadísticas por jugador, un reporte filtrado para mediocampistas y scripts para limpieza, análisis y visualización.
97

10-
Objetivo:
11-
Analizar la distribución y eficacia de pases del plantel del Manchester United (temporada 2024-2025), con un enfoque en mediocampistas.
8+
Contenido principal:
9+
- `passing.csv`: datos de pases y estadísticas por jugador (limpio).
10+
- `reporte_mediocampo.csv`: reporte filtrado con métricas por jugador del mediocampo.
11+
- `data_load.py`, `clean_data.py`, `analyze_mediocampo.py`, `plot_pases.py`: scripts de ayuda y análisis.
12+
- `tests/`: tests básicos ejecutados por CI.
13+
- `LICENSE`: licencia MIT.
1214

1315
Requisitos:
1416
- Python 3.8+
15-
- pandas
16-
- matplotlib/seaborn (opcional para gráficos)
17-
18-
Proyecto: Análisis de pases — Manchester United 2024-2025
19-
20-
Contenido:
21-
- `Passing_clean.csv` (o `Passing 2024-2025 Manchester United - Passing.csv`): datos de pases y estadísticas por jugador.
22-
- `reporte_mediocampo_clean.csv`: reporte filtrado y métricas específicas para mediocampistas.
23-
- `analisis_mediocampo_united.png`, `grafico_pases_united.png`: visualizaciones generadas.
24-
25-
Objetivo:
26-
Analizar la distribución y eficacia de pases del plantel del Manchester United (temporada 2024-2025), con un enfoque en mediocampistas.
27-
28-
Requisitos:
29-
- Python 3.8+
30-
- pandas
31-
- matplotlib/seaborn (opcional para gráficos)
17+
- Instalar dependencias listadas en `requirements.txt`.
3218

3319
Instalación rápida:
34-
1. Crear entorno virtual:
35-
36-
```
20+
```powershell
3721
python -m venv .venv
38-
```
39-
40-
2. Instalar dependencias:
41-
42-
```
43-
pip install pandas matplotlib seaborn
22+
.\.venv\Scripts\activate
23+
pip install -r requirements.txt
4424
```
4525

4626
Uso básico:
47-
1. Cargar los CSV en pandas:
48-
4927
```python
5028
import pandas as pd
51-
df = pd.read_csv('Passing_clean.csv')
52-
report = pd.read_csv('reporte_mediocampo_clean.csv')
29+
from data_load import load_data
30+
df, report = load_data('passing.csv', 'reporte_mediocampo.csv')
5331
```
5432

55-
2. Revisar columnas y limpiar valores faltantes según sea necesario.
56-
57-
Scripts incluidos:
58-
- `data_load.py`: carga y muestra resumen de los CSV.
59-
- `clean_data.py`: funciones de limpieza de datos.
60-
- `analyze_mediocampo.py`: genera `top_mediocampo.csv` con los mejores por `Prog_Ratio`.
61-
- `plot_pases.py`: genera `grafico_pases_united.png` con los principales pasadores.
62-
63-
Subir a GitHub:
64-
1. Inicialice git y haga commit (pasos automatizables desde este repo).
65-
2. Añada un remote y haga `git push` al repositorio remoto (necesito la URL o permisos para crear/pushear al repo).
33+
Ejecutar tests localmente:
34+
```powershell
35+
pytest
36+
```
6637

6738
Notas:
68-
- He limpiado el formato de los CSV (eliminadas las marcas de bloque) para poder leerlos directamente con `pandas.read_csv`.
69-
- Si quieres que cree el repositorio en tu cuenta y haga el push, proporciona la URL del repo o un token con permisos (recomiendo realizar el push desde tu máquina para mayor seguridad).
39+
- He unificado nombres de archivos y eliminado duplicados redundantes para facilitar el uso.
40+
- CI ejecuta `pytest` automáticamente en cada push/pull request.
7041

7142
Licencia:
72-
Este proyecto se publica bajo la licencia MIT. Consulta el archivo `LICENSE` para más detalles.
43+
Este proyecto se publica bajo la licencia MIT. Consulta `LICENSE`.

analyze_mediocampo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import pandas as pd
55

66

7-
def top_by_prog_ratio(report_path='reporte_mediocampo_clean.csv', out_path='top_mediocampo.csv', top_n=10):
7+
def top_by_prog_ratio(report_path='reporte_mediocampo.csv', out_path='top_mediocampo.csv', top_n=10):
88
df = pd.read_csv(report_path)
99
if 'Prog_Ratio' in df.columns:
1010
df_sorted = df.sort_values('Prog_Ratio', ascending=False)

clean_data.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def clean_passes(df: pd.DataFrame) -> pd.DataFrame:
1616

1717
if __name__ == '__main__':
1818
import sys
19-
path = sys.argv[1] if len(sys.argv) > 1 else 'Passing_clean.csv'
19+
path = sys.argv[1] if len(sys.argv) > 1 else 'passing.csv'
2020
df = pd.read_csv(path)
2121
df_clean = clean_passes(df)
2222
print('Limpieza completada:', df_clean.shape)

data_load.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""
44
import pandas as pd
55

6-
def load_data(passes_path='Passing_clean.csv', report_path='reporte_mediocampo_clean.csv'):
6+
def load_data(passes_path='passing.csv', report_path='reporte_mediocampo.csv'):
77
df = pd.read_csv(passes_path)
88
report = pd.read_csv(report_path)
99
return df, report
File renamed without changes.

plot_pases.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
"""Genera gráficos simples de pases y guarda imágenes.
22
Requiere: matplotlib, seaborn (opcional)
3+
"""Genera gráficos simples de pases y guarda imágenes.
4+
Requiere: matplotlib, seaborn (opcional)
35
"""
46
import pandas as pd
57
import matplotlib.pyplot as plt
68

79

8-
def plot_top_passers(passes_path='Passing_clean.csv', out_path='grafico_pases_united.png', top_n=10):
10+
def plot_top_passers(passes_path='passing.csv', out_path='grafico_pases_united.png', top_n=10):
911
df = pd.read_csv(passes_path)
1012
if 'Cmp' in df.columns:
1113
top = df.sort_values('Cmp', ascending=False).head(top_n)
@@ -20,6 +22,7 @@ def plot_top_passers(passes_path='Passing_clean.csv', out_path='grafico_pases_un
2022
else:
2123
raise KeyError('La columna Cmp no existe en {}'.format(passes_path))
2224

25+
2326
if __name__ == '__main__':
2427
print('Generando gráfico...')
2528
print(plot_top_passers())

reporte_mediocampo_clean.csv

Lines changed: 0 additions & 14 deletions
This file was deleted.

tests/test_clean_data.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import pandas as pd
1+
import pandas as pd
22
from clean_data import clean_passes
33

44

55
def test_clean_passes_numeric_conversion():
6-
df = pd.read_csv('Passing_clean.csv')
6+
df = pd.read_csv('passing.csv')
77
df_clean = clean_passes(df)
88
assert '90s' in df_clean.columns
99
assert pd.api.types.is_numeric_dtype(df_clean['90s']), 'La columna 90s debería ser numérica después de la limpieza'

tests/test_data_load.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44

55
def test_load_data_not_empty():
6-
df, report = load_data('Passing_clean.csv', 'reporte_mediocampo_clean.csv')
6+
df, report = load_data('passing.csv', 'reporte_mediocampo.csv')
77
assert not df.empty, 'Dataframe de pases está vacío'
88
assert 'Player' in df.columns
99
assert not report.empty, 'Reporte de mediocampo está vacío'

0 commit comments

Comments
 (0)