2017-06-17 4 views
0

Ich bin schon eine Weile im Kreis herumgegangen und dachte, ich würde posten. Ich habe einen Datenrahmen mit UserID, TimeSlot und Count.Pandas Dataframe groupby Plot 2

Ich versuche, 2 UserIDs plotten (3 & 4) auf separaten Liniendiagramme mit Timeslot entlang der x-Achse und eine Summe von Zählung auf der Y. habe ich versucht zu this excellent post beziehen kann aber nicht scheinen es für meine Bedürfnisse richtig zu machen.

Wie kann ich diesen Code beheben?

userList = [3,4] 

    df.set_index('TimeSlot', inplace=True) 
    df2 = df.groupby('UserID') 
    ncols=2 
    nrows = int(np.ceil(df2.ngroups/ncols)) 

    fig, axes = plt.subplots(nrows=4, ncols=ncols, figsize=(12,4), sharey=True) 

    for (key, ax) in zip(df2.groups.keys(), axes.flatten()): 
     df2.get_group(key).plot(ax=ax) 

    ax.legend() 
    plt.show() 

Antwort

0

Ok das war meine eventuelle Lösung:

df.set_index('TimeSlot', inplace=True) 
userList = [1,2,3] 
df2 = df.loc[df['UserID'].isin(userList)] 
df2 = df2.pivot(columns='UserID', values='Count') 
df2.plot() 

Es zeichnet tatsächlich die Linien auf dem gleichen Chart, die ich beschlossen, war in Ordnung.

Verwandte Themen