edit corelation.py and add hr_data_cleaned.csv
This commit is contained in:
		
							parent
							
								
									9005b4fbfb
								
							
						
					
					
						commit
						37ae6b437d
					
				@ -112,11 +112,20 @@ month_translation = {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Funktion, um Datumsbereiche wie 'Mrz 29-Apr 4' oder 'Dez 29, 2023-Jan 4, 2024' in die Kalenderwoche und das Startdatum zu konvertieren
 | 
			
		||||
# Funktion, um Datumsbereiche wie 'Mrz 29-Apr 4', 'Dez 29, 2023-Jan 4, 2024' oder 'Dez 22-28 2023' in Kalenderwoche und Startdatum zu konvertieren
 | 
			
		||||
def convert_to_week_number_and_start_date(date_range_str):
 | 
			
		||||
    # Entferne zusätzliche Leerzeichen um den Bindestrich herum und entferne Kommas
 | 
			
		||||
    date_range_str = date_range_str.replace(" - ", "-").replace(",", "")
 | 
			
		||||
 | 
			
		||||
    # Prüfen, ob das Jahr am Ende steht (z.B. 'Dez 22-28 2023')
 | 
			
		||||
    if date_range_str[-4:].isdigit():
 | 
			
		||||
        # Jahr am Ende des Datums
 | 
			
		||||
        year_str = date_range_str[-4:]
 | 
			
		||||
        date_range_str = date_range_str[:-5]  # Entferne das Jahr aus der Datumsangabe
 | 
			
		||||
    else:
 | 
			
		||||
        # Kein Jahr am Ende -> nutze das aktuelle Jahr
 | 
			
		||||
        year_str = str(datetime.now().year)
 | 
			
		||||
 | 
			
		||||
    # Splitte den Datumsbereich in Start- und Endteil
 | 
			
		||||
    start_part, end_part = date_range_str.split("-")
 | 
			
		||||
 | 
			
		||||
@ -128,20 +137,14 @@ def convert_to_week_number_and_start_date(date_range_str):
 | 
			
		||||
    # Verarbeite den Endteil
 | 
			
		||||
    end_parts = end_part.split(" ")
 | 
			
		||||
 | 
			
		||||
    # Verarbeite das Enddatum, basierend darauf, ob ein Jahr enthalten ist oder nicht
 | 
			
		||||
    if len(end_parts) == 3:  # Fall: 'Jan 4 2024'
 | 
			
		||||
    # Verarbeite das Enddatum, basierend darauf, ob der Endteil das Jahr enthält
 | 
			
		||||
    if len(end_parts) == 2:  # Fall: 'Apr 4'
 | 
			
		||||
        end_month_str = end_parts[0]
 | 
			
		||||
        end_day = int(end_parts[1].strip())
 | 
			
		||||
        end_year = int(end_parts[2].strip())  # Nimm das Jahr aus dem Endteil
 | 
			
		||||
    elif len(end_parts) == 2:  # Fall: 'Jan 4' ohne Jahr
 | 
			
		||||
        end_month_str = end_parts[0]
 | 
			
		||||
        end_day = int(end_parts[1].strip())
 | 
			
		||||
        end_year = datetime.now().year  # Nutze das aktuelle Jahr, wenn kein Jahr angegeben ist
 | 
			
		||||
    else:
 | 
			
		||||
        # Falls kein Monat angegeben, setze den Startmonat für den Endteil
 | 
			
		||||
        # Fall: kein Monat -> nur Tag (z.B. '28' im Format 'Dez 22-28 2023')
 | 
			
		||||
        end_month_str = start_month_str
 | 
			
		||||
        end_day = int(end_parts[0].strip())
 | 
			
		||||
        end_year = datetime.now().year  # Nutze das aktuelle Jahr
 | 
			
		||||
 | 
			
		||||
    # Konvertiere den deutschen Monatsnamen in den englischen für beide Monate
 | 
			
		||||
    if start_month_str in month_translation:
 | 
			
		||||
@ -149,27 +152,17 @@ def convert_to_week_number_and_start_date(date_range_str):
 | 
			
		||||
    if end_month_str in month_translation:
 | 
			
		||||
        end_month_str = month_translation[end_month_str]
 | 
			
		||||
 | 
			
		||||
    # Wenn der Startteil ein Jahr enthält, nutze dieses
 | 
			
		||||
    if len(start_parts) == 3:
 | 
			
		||||
        start_year = int(start_parts[2])
 | 
			
		||||
    else:
 | 
			
		||||
        start_year = datetime.now().year
 | 
			
		||||
 | 
			
		||||
    # Falls der Datumsbereich über den Dezember hinausgeht, endet das Enddatum im nächsten Jahr
 | 
			
		||||
    if start_month_str == 'Dec' and end_month_str == 'Jan':
 | 
			
		||||
        end_year = start_year + 1
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        # Konvertiere das Startdatum in ein Datum
 | 
			
		||||
        start_date = datetime.strptime(f"{start_month_str} {start_day} {start_year}", "%b %d %Y")
 | 
			
		||||
        start_date = datetime.strptime(f"{start_month_str} {start_day} {year_str}", "%b %d %Y")
 | 
			
		||||
    except ValueError:
 | 
			
		||||
        raise ValueError(f"Ungültiges Startdatum: {start_month_str} {start_day} {start_year}")
 | 
			
		||||
        raise ValueError(f"Ungültiges Startdatum: {start_month_str} {start_day} {year_str}")
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        # Konvertiere das Enddatum in ein Datum
 | 
			
		||||
        end_date = datetime.strptime(f"{end_month_str} {end_day} {end_year}", "%b %d %Y")
 | 
			
		||||
        end_date = datetime.strptime(f"{end_month_str} {end_day} {year_str}", "%b %d %Y")
 | 
			
		||||
    except ValueError:
 | 
			
		||||
        raise ValueError(f"Ungültiges Enddatum: {end_month_str} {end_day} {end_year}")
 | 
			
		||||
        raise ValueError(f"Ungültiges Enddatum: {end_month_str} {end_day} {year_str}")
 | 
			
		||||
 | 
			
		||||
    # Berechne die Kalenderwoche basierend auf dem Startdatum
 | 
			
		||||
    week_number = start_date.isocalendar()[1]
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user