Seite 1 von 1

Dataframes mit einer For-Schleife über eine Dictionary aktualisieren

Verfasst: Donnerstag 13. Februar 2025, 10:49
von NinoBaumann
Hallo,

ich habe mehrere Dataframes erstellt. All diesen Dataframes möchte ich jetzt noch drei Spalten aus einem bestimmten Dataframe hinzufügen. Dazu habe ich ein Dictionary erstellt und über eine For-Schleife will ich mit dem Pandas pd.concat Befehl die bestehenden Datframes um die Drei neuen Spalten ergänzen. Der Code bringt auch keinen Fehler aber die Dataframes werden auch nicht um die Spalten ergänzt. Wie löse ich das Problem?

Code: Alles auswählen

dict_dataframe_collection_19_cols = {
    'Number of Machines': df_number_of_machines,
    'Shift Hours Paid': df_shift_hours_paid,
    'Shift Hours Available': df_shift_hours_available,
    'Direct Manning Operator': df_direct_manning_operator,
    'Direct Manning Jobsetter': df_direct_manning_jobsetter,
    'Direct Manning Teamleader': df_direct_manning_teamleader,
    'Cycle Time Target': df_cycle_time_target,
    'Cycle Time Total': df_cycle_time_total,
    'OEE': df_oee,
    'STD Labor Hrs per Pcs': df_std_hr_per_pc,
    'STD Labor Hrs per Pcs Operator': df_std_hr_per_pc_operator,
    'STD Labor Hrs per Pcs Jobsetter': df_std_hr_per_pc_jobsetter,
    'STD Labor Hrs per Pcs Teamleader': df_std_hr_per_pc_teamleader,
    'Monthly OT Hours Adjustment': df_overtime_hours,
    'Gross Rates': df_pcs_per_hour_gross,
    'Net Rates': df_pcs_per_hour_net,
}

dict_dataframe_collection_24_cols = {
    'Daily Volume': df_volume_daily,
    'Volume': df_volume,
    'Operator Hrs per Day': df_hours_per_day_operator,
    'Jobsetter Hrs per Day': df_hours_per_day_jobsetter,
    'Teamsleder Hrs per Day': df_hours_per_day_teamleader,
    'Capacity': df_capacity,
}

# Spaltennamen des Volume Dataframes und des Salesplan Dataframes
header_list_salesplan = df_volume_salesplan.columns
header_list_volume = df_volume.columns

dict_dataframe_collection = [
    (dict_dataframe_collection_19_cols, header_list_salesplan),
    (dict_dataframe_collection_24_cols, header_list_volume)
]

for dict_collection, column_header in dict_dataframe_collection:
    
    for key in dict_collection:
        
        df = dict_collection[key]
        
        # Spaltennamen ändern
        if dict_collection == dict_dataframe_collection_19_cols:
            df.columns = [i for i in column_header if i != 'Part Number']
            
        else:
            df.columns = [i for i in column_header if i != 'Part Number']

        # df_index_columns (Index-Spalten) definieren
        df_index_columns = df_production_data[
            ['Teilenr.', 'Arbeitsgang', 'Arbeitsplatzkürzel']
        ]

        # Füge die Index-Spalten an den Anfang des DataFrames hinzu
        dict_collection[key] = pd.concat([df_index_columns, df], axis=1)

Re: Dataframes mit einer For-Schleife über eine Dictionary aktualisieren

Verfasst: Donnerstag 13. Februar 2025, 21:25
von Sirius3
Spalten fügt man hinzu, indem man einfach neue Spalten definiert:

Code: Alles auswählen

df["neue Spalte"] = werte
Deinen Code verstehe ich nicht und ich weiß auch nicht, wie dieser mit Deiner Frage zusammenhängt.
Wenn Du 22 einzelne Dataframes hast, machst Du vorher aber schon etwas falsch.

Re: Dataframes mit einer For-Schleife über eine Dictionary aktualisieren

Verfasst: Freitag 14. Februar 2025, 06:45
von NinoBaumann
Die Dataframes müssen einzeln sein. Jedes Dataframe hat 30 Spalten. Wenn ich das alles in eins packe, blickt man da nicht mehr durch. Des weiteren werde diese miteinander alle verrechnet. So ist halt die Aufgabenstellung. Die Dataframes steht alle in dem Dictionary. Jetzt möchte ich jedem dieser Dataframes diese drei Spalten hinzufügen. Aber aus irgendeinem Grund werden diese nicht hinzugefügt.

Re: Dataframes mit einer For-Schleife über eine Dictionary aktualisieren

Verfasst: Freitag 14. Februar 2025, 08:10
von NinoBaumann
Danke. Ist gelöst.