48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
import pandas as pd
|
|
|
|
|
|
def get_rahmentermine(MS_ART, nTeams):
|
|
|
|
""" LOAD RAHMENTERMINPLAN FROM CSV"""
|
|
rahmentermine = pd.read_csv("data/rahmentermine.csv")
|
|
cols = list(rahmentermine.columns)
|
|
|
|
# %%
|
|
|
|
rahmentermine['From'] = pd.to_datetime(rahmentermine['From'], format='%d/%m').dt.date
|
|
rahmentermine['From'] = rahmentermine['From'].apply(lambda x: x.replace(year=2025) if x.month < 7 else x.replace(year=2024))
|
|
rahmentermine['To'] = pd.to_datetime(rahmentermine['To'], format='%d/%m').dt.date
|
|
rahmentermine['To'] = rahmentermine['To'].apply(lambda x: x.replace(year=2025) if x.month < 7 else x.replace(year=2024))
|
|
|
|
# %%
|
|
|
|
""" REMOVE ALL ENTRIES THAT ARE NO REAL MATCHDAYS"""
|
|
for col in cols:
|
|
if col in ['From', 'To']:
|
|
continue
|
|
rahmentermine[col] = pd.to_numeric(rahmentermine[col], errors='coerce')
|
|
rahmentermine[col] = rahmentermine[col].apply(lambda x: int(x) if pd.notna(x) and x == int(x) else '')
|
|
|
|
# %%
|
|
|
|
""" CREATE DICTIONARY WITH MATCHDAYS"""
|
|
termine = {}
|
|
for col in cols:
|
|
colname = col.split('.')[0]
|
|
if col in ['From', 'To']:
|
|
continue
|
|
if rahmentermine[col][0] != nTeams:
|
|
continue
|
|
termine[(colname,nTeams)] = {}
|
|
|
|
for row in rahmentermine.iterrows():
|
|
if row[0] == 0:
|
|
continue
|
|
if row[1][col] != "":
|
|
termine[(colname,nTeams)][row[1][col]] = [row[1]['From'], row[1]['To']]
|
|
|
|
return termine.get((MS_ART,nTeams), [])
|
|
|
|
|
|
|
|
|