Dataframe mergen und dann zählen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
fischer-klaus3
User
Beiträge: 27
Registriert: Donnerstag 17. September 2020, 08:07

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.
Antworten