Seite 1 von 1

Dataframe mergen und dann zählen

Verfasst: Samstag 31. Oktober 2020, 17:16
von fischer-klaus3
Hallo zusammen,

Das ist meine Dataframe
Bild

Was ich zur Zeit habe
Bild
Das Problem ist, dass die Projektgruppen möglicherweise mehrere unterschiedliche IDs speichern. Ich möchte die drei beliebtesten Projektgruppen ausgeben (am beliebtesten = Anzahl der Projektgruppen). Wie kann ich die Projektgruppen mit der Projekt-ID zusammenführen und zählen? Ich möchte die Projektgruppe beim Zusammenführen mit dem Schülernamen zählen. Ich möchte zählen, wie oft die Projektgruppe angezeigt wird, und sie sollte mit der Projekt-ID zusammengeführt werden, damit nur eine Projekt-ID vorhanden ist.

Code: Alles auswählen

   d = {
        'Studentid': [1, 2, 3 , 1, 1, 1, 1, 4]
        ,'Studentname': ['Bob', 'Jason', 'Jackson', 'Bob', 'Bob', 'Bob', 'Bob', 'Max']
        , 'projectgroup': ['The fantastic', 'New', 'Banana' , 'The fantastic', 'Banana', 'Banana', 'Banana', 'New']
        ,'projectid': [1, 2, 3, 4, 5, 3, 3, 2]
    }
    df = pd.DataFrame(data=d)
    display(df)
    project_df = df.groupby('projectgroup').agg(project_list = ('projectid',set),
                                                unique_projects=('projectid','nunique'))
    
    pd.merge(project_df[['Studentid','Studentname','projectgroup']].drop_duplicates(),project_df,how='left',on='projectgroup')

   df_sorted = project_df.groupby(['projectid', 'projectgroup']).size().nlargest(3) .reset_index(name='freq_of_projects')
   display(df_sorted)
Was ich gerne hätte
Bild

Kann mir bitte jemand dabei weiterhelfen? Danke im Voraus.