2016-06-03 15 views
0

Ich benutze Pandas, Jupyter Notebooks und Python. Ich habe folgende Dataset als DatenrahmenBoxplot muss mehrere groupby in Pandas verwenden

Cars,Country,Type 
1564,Australia,Stolen 
200,Australia,Stolen 
579,Australia,Stolen 
156,Japan,Lost 
900,Africa,Burnt 
2000,USA,Stolen 
1000,Indonesia,Stolen 
900,Australia,Lost 
798,Australia,Lost 
128,Australia,Lost 
200,Australia,Burnt 
56,Australia,Burnt 
348,Australia,Burnt 
1246,USA,Burnt 

Ich mag würde wissen, wie ich einen Box-Plot verwenden kann, die folgende Frage „Anzahl der Autos in Australien, die von jeder Art betroffen war“ zu beantworten. Im Grunde sollte ich 3 Boxplots (für jeden Typ) haben, die die Anzahl der betroffenen Autos in Australien zeigen.

Bitte beachten Sie, dass dies eine Teilmenge des realen Datensatzes ist.

Antwort

2

können Sie wählen nur die Zeilen zu "Australia" aus der Säule entsprechende "Country" und Gruppe durch die Säule wie gezeigt:

from StringIO import StringIO 
import pandas as pd 

text_string = StringIO(
""" 
Cars,Country,Type,Score 
1564,Australia,Stolen,1 
200,Australia,Stolen,2 
579,Australia,Stolen,3 
156,Japan,Lost,4 
900,Africa,Burnt,5 
2000,USA,Stolen,6 
1000,Indonesia,Stolen,7 
900,Australia,Lost,8 
798,Australia,Lost,9 
128,Australia,Lost,10 
200,Australia,Burnt,11 
56,Australia,Burnt,12 
348,Australia,Burnt,13 
1246,USA,Burnt,14 
""") 

df = pd.read_csv(text_string, sep = ",") 
# Specifically checks in column name "Cars" 
group = df.loc[df['Country'] == 'Australia'].boxplot(column = 'Cars', by = 'Type') 

Image

+0

Wie würden Sie sicherstellen, dass die Y-Achse gleich bleibt oder sich auf Autos konzentriert, wenn es im Datensatz, der Zahlen enthält, eine andere Spalte gibt? Der Datenrahmen ist also: Score, Auto, Land, Typ, wo Score auch numerisch ist, ähnlich wie Auto – Timetraveller

+0

@Timetraveller: Bitte sehen Sie die bearbeitete Antwort, die speziell für die Autos-Spalte antwortet. –

+1

Vielen Dank Kumpel. Genau das habe ich getan. – Timetraveller