Ich habe einen Code wie folgt:Wie groupby und Filter sortieren Pandas mit
grouped=L2014.groupby(['state','NAME'])
grouped.mask.value_counts(normalize=True,).sort_index()
Ergebnisse wie folgt aus:
state NAME mask
CO Adams False 0.407195
True 0.592805
Alamosa False 1.000000
Arapahoe False 0.460602
True 0.539398
Archuleta False 1.000000
Wie von der Spitze der größten 5 True Wert der Zahlen sortieren? und zurückgeben? mögen, wie man die Gruppe durch das Absinken des wahren Wertes zeigt.
nach Versuch aktualisiert:
grouped.mask.value_counts(normalize=1).sort_index(level=2,ascending=False)
Ergebnisse sind
state NAME mask
TX Zavala True 0.057416
Zapata True 0.042623
Young True 0.928009
Yoakum True 0.886719
Wood True 0.604720
Wise True 0.859006
Wilson True 0.704336
Williamson True 0.269555
Wilbarger True 0.317355
Wichita True 0.067734
Wheeler True 0.992218
Wharton True 0.298335
Webb True 0.465170
Washington True 0.391229
Ward True 0.269036
Waller True 0.145650
Walker True 0.580991
Victoria True 0.076246
Van Zandt True 0.357858
Val Verde True 0.551620
Uvalde True 0.465817
Upton True 0.900000
Upshur True 0.595388
Tyler True 0.119469
Trinity True 0.215548
Travis True 0.684808
Wie Sie sehen können, ist der wahre Wert noch nicht vom größten zum kleinsten sortiert, und ich möchte nur Top-5-Werte (5 NAME) für jeden Staat.
Aktualisiert:
Nach Versuch:
L2014.groupby(['state','NAME']).mask.value_counts(normalize=True).filter(like='True', axis=0).nlargest(2000)
i wie diese:
state NAME mask
NE Furnas True 1.000000
OK Washita True 1.000000
TX Hall True 1.000000
SD Fall River True 1.000000
TX Throckmorton True 1.000000
KY Hamilton True 1.000000
IA Hancock True 1.000000
SD Bennett True 1.000000
TX Stonewall True 1.000000
Carson True 1.000000
SD Adams True 1.000000
OK Sebastian True 1.000000
TX McCurtain True 1.000000
Gray True 1.000000
OK Roger Mills True 1.000000
TX Childress True 1.000000
Reagan True 1.000000
KY Pittsylvania True 1.000000
TX Ochiltree True 1.000000
Motley True 1.000000
Collingsworth True 1.000000
OK Harmon True 1.000000
KY Buchanan True 1.000000
KS Woodson True 1.000000
Wilson True 1.000000
Wichita True 1.000000
TX Hartley True 1.000000
KS Cloud True 1.000000
Decatur True 1.000000
Elk True 1.000000
IA Taylor True 1.000000
es tut Gruppe von Staat mehr. danke
Sie Ausgang für Klarheit und zeigen sollte. – Vipin
Der Ausgang wird wie oben angezeigt. – alice
Bitte geben Sie einen Beispiel-Eingabedatensatz und die gewünschte Ausgabe (basierend auf Ihrem Beispiel-Eingabedatensatz) ein. Ich bin mir ziemlich sicher - Sie würden innerhalb weniger Minuten eine Antwort bekommen, wenn Sie den Leuten eine Möglichkeit geben würden, ihre Lösung zu testen ... [Wie man gute reproduzierbare Pandas-Beispiele macht] (http://stackoverflow.com/questions/ 20109391/how-to-make-gut-reproduzierbare Pandas-Beispiele) – MaxU