2016-07-12 10 views
1
MachineName EventLogs 
0 P79   Yes 
1 P14   Yes 
2 P1   No 
3 P93   No 

zähle ich die Anzahl der Protokolle in einem Datenrahmen, die unter Anweisung:Format eines Pandas Datenrahmen

df1 = pd.value_counts(df['Logs'].values, sort=False) 

und wenn ich df1 drucken, ist die Ausgabe wie folgt:

Yes 2 
No 2 
dtype: int64 

Ich kann kein Tortendiagramm mit dem Ergebnis erstellen, da ich beim Erstellen eines Kreisdiagramms die Spaltennamen angeben muss.

So etwas wie

%%chart pie --fields Value,Count --data df1 

nicht sicher, wie die Spaltennamen zu df1 hinzuzufügen. Jede Hilfe wäre willkommen.

Antwort

1

Sie benötigen reset_index, weil Sie Series haben:

df1 = pd.value_counts(df['Logs'].values, sort=False).reset_index() 
df1.columns = ['value','count'] 

Mit Beispiel:

df1 = pd.value_counts(df['EventLogs'].values, sort=False).reset_index() 
df1.columns = ['value','count'] 
print (df1) 
    value count 
0 No  2 
1 Yes  2 

Oder Sie verwenden value_counts:

df1 = df.EventLogs.value_counts().reset_index(name='Count').rename(columns={'index':'Value'}) 
print (df1) 
    Value Count 
0 Yes  2 
1 No  2 

Mit sort=False:

df1 = df.EventLogs.value_counts(sort=False) 
        .reset_index(name='Count') 
        .rename(columns={'index': 'Value'}) 
print (df1) 
    Value Count 
0 No  2 
1 Yes  2 

Eine andere Lösung ist Series.plot.pie - siehe visualization in docs:

import matplotlib.pyplot as plt 
df.EventLogs.value_counts(sort=False).plot.pie() 
plt.show() 

graph

+0

Können wir Tortendiagramm und eine Tabelle nebeneinander in einem Notebook platzieren? Zum Beispiel habe ich ein Tortendiagramm mit "%% chart pie --fields Wert, Anzahl --data df2" und eine Tabelle mit "%% Diagrammtabelle --fields MachineName --data df_result2" aber statt Kuchen Tabelle und Tabelle getrennt, ich muss es nebeneinander haben. Gibt es dafür eine Option in IPython? – user3447653

+0

Schwierige Frage für mich, weil ich 'IPython' nie auf diese Weise benutze, aber versuche [dies] (http://stackoverflow.com/questions/8524401/how-can-i-place-a-table-on-a-a- Plot-in-Matplotlib). Ich weiß in 'Pandas', wenn nur' plot' verwendet wird - [Tabellen mit Graph] (http://pandas.pydata.org/pandas-docs/stable/visualization.html#plotting-tables) – jezrael

0

Ich weiß nicht, was Sie mit Ihrem Tortendiagramme machen, aber Pandas einige durchaus sinnvoll Plotten Fähigkeiten hat (durch Matplotlib).

df1.plot(kind='pie')