2016-09-12 2 views
1

Ich bin ein groupby() auf meine Daten wie folgt ausgeführt werden:Wie kann ich mein groupby() Ergebnis plotten?

user.groupby(["DOC_ACC_DT", "DOC_ACTV_CD"]).agg("sum")["SUM_DOC_CNT"] 

, die in dieser gruppierten Daten ergibt:

DOC_ACC_DT DOC_ACTV_CD 
2015-07-01 BR    1 
      PT    1 
2015-07-02 BR    1 
      PT    1 
2015-07-06 BR    1 
      PT    1 
2015-07-08 BR    1 
2015-07-09 AD    2 
      PT    1 
2015-07-13 AD    50 
      BR    52 
      PT    1 
2015-07-14 AD    6 
      BR    5 
      PT    1 
2015-07-16 BR    1 
      PT    1 
2015-07-23 AD    13 
      BR    14 
      PT    3 
2015-07-27 BR    1 
      PT    1 

Was soll ich jetzt tun einfach durch DOC_ACTV_CD plotten ist. Bitte nicht, dass es Lücken zwischen den Tagen gibt, so dass ich zwischen Tagen, an denen nichts passiert ist, z.B.

2015-07-23 AD    13 
      BR    14 
      PT    3 
2015-07-25 BR    1 
      PT    1 

würde

2015-07-23 AD    13 
      BR    14 
      PT    3 
2015-07-24 AD    0 
      BR    0 
      PT    0 
2015-07-25 AD    0 
      BR    1 
      PT    1 

werden, bevor ich für AD, BR und PT in einem Plot eine Zeitreihe zeichnen. Was ist der schnellste Weg, dies zu tun?

Antwort

2

können Sie verwenden:

df = user.groupby(["DOC_ACC_DT", "DOC_ACTV_CD"]).agg("sum")["SUM_DOC_CNT"] 
df.unstack().resample('D').replace(np.nan,0).plot() 
+0

Ja, das funktioniert! Danke – displayname

+0

Danke. Es gibt Warnung zurück, Problem ist mit Funktion ['fillna (0)'] (http://stackoverflow.com/q/39452095/2901002). – jezrael

Verwandte Themen