0

Ich habe dieses DF.Kann kein Histogramm von Pandas gruppierten Daten

f = { 'Router_name':['count'] } 
a = a.groupby(['Week_end']).agg(f) 

, die folgenden Daten produziert ..

  Router_name 
       count 
Week_end    
29     3 
30    10 
31     6 
32     4 
33     9 
34     2 
35     5 
36    10 
37     8 
38     6 
40    10 
41     2 
42     8 
43     1 
44     3 
45     2 
46     8 
47     6 
49    12 
50     5 
51    10 
52     5 
53    11 

Ich versuche, für Router_name ein Histogramm/Frequenzen aus den vorherigen aggregierten Daten zu erhalten. So zum Beispiel die erwartete Ausgabe sollten diese Frequenzen:

enter image description here

Ich habe gelesen, dass hereb = a.hist(by=a['Router_name']) tun den Trick tun würde. Wenn jedoch versucht, dass ich die folgende Fehlermeldung erhalten:

Traceback (most recent call last): 
    File "get_report_v1.5_devel.py", line 465, in <module> 
    b = a.hist(by=a['Router_name']) 
    raise ValueError("Grouper for '%s' not 1-dimensional" % t) 
ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional 

Ich habe auch versucht dies: a.Router_name.hist(). Aber ich bekomme den gleichen Datenrahmen.

Wie kann ich die Häufigkeiten für eine bestimmte Spalte aus gruppierten Daten erhalten?

Antwort

1

Durch scheint, wie Sie den Multi-Index unter Verwendung des agg

a.hist(by=a[('Router_name','count')]) 

a[('Router_name','count')].value_counts() 
Out[1678]: 
10 4 
8  3 
6  3 
5  3 
2  3 
3  2 
12 1 
11 1 
9  1 
4  1 
1  1 
Name: (Router_name, sum), dtype: int64 
+0

Hallo erstellen! Ich habe Ihren Vorschlag versucht, aber beim Versuch, die resultierende Tabelle zu drucken, erhalte ich so etwas wie eine Reihe von Listen: '[]' . Außerdem habe ich versucht, es zu plotten ('ax1 = b.plot (.)') Und bekam: 'AttributeError: 'numpy.darray' Objekt hat kein Attribut 'plot''. Wie verwalte ich dieses Ergebnis? –

+0

@ LucasAimaretto das Ergebnis ist nach dem Link, den Sie freigegeben haben, können Sie Ihre erwartete Ausgabe zeigen? – Wen

+0

Hi @Wen, ich habe die Frage aktualisiert, um zu zeigen, was ich erwartet habe. Es wird im Wesentlichen die Häufigkeiten des Auftretens der gruppierten Daten erhalten. In Excel/Calc können Sie das mit einer PivotTable oder mit der Formel 'Frequency()' tun. –

Verwandte Themen