In Pandas So sortieren Sie eine Ebene eines Multi-Index basierend auf den Werten einer Spalte, während Sie die Gruppierung der anderen Ebene beibehalten
Ich mache gerade einen Data Mining-Kurs an der Universität, aber ich bin ein bisschen festgefahren bei einem Problem mit der Sortierung mehrerer Indizes.
Bei den tatsächlichen Daten handelt es sich um etwa 1 Million Bewertungen von Filmen, und ich versuche, diese anhand der amerikanischen Postleitzahlen zu analysieren. Um zu testen, wie ich vorgehen soll, habe ich einen viel kleineren Datensatz von 250 zufällig generierten verwendet Bewertungen für 10 Filme und anstelle von Postleitzahlen verwende ich Altersgruppen.
Das ist also, was ich gerade habe, es ist ein multiindexierter DataFrame in Pandas mit zwei Ebenen, 'group' und 'title'.
rating
group title
Alien 4.000000
Argo 2.166667
Adults Ben-Hur 3.666667
Gandhi 3.200000
... ...
Alien 3.000000
Argo 3.750000
Coeds Ben-Hur 3.000000
Gandhi 2.833333
... ...
Alien 2.500000
Argo 2.750000
Kids Ben-Hur 3.000000
Gandhi 3.200000
... ...
Mein Ziel ist es, die Titel nach ihrer Bewertung in der Gruppe zu sortieren (und nur die beliebtesten 5 oder so Titel in jeder Gruppe anzuzeigen).
So etwas in der Art (aber ich werde nur zwei Titel in jeder Gruppe zeigen):
rating
group title
Alien 4.000000
Adults Ben-Hur 3.666667
Argo 3.750000
Coeds Alien 3.000000
Gandhi 3.200000
Kids Ben-Hur 3.000000
Weiß jemand, wie das geht? Ich habe sort_order, sort_index usw. ausprobiert und die Ebenen vertauscht, aber sie vertauschen auch die Gruppen. So sieht es dann aus:
rating
group title
Adults Alien 4.000000
Coeds Argo 3.750000
Adults Ben-Hur 3.666667
Kids Gandhi 3.666667
Coeds Alien 3.000000
Kids Ben-Hur 3.000000
Ich suche so etwas:Multi-Index-Sortierung in Pandas, aber anstatt nach einer anderen Ebene zu sortieren, möchte ich nach den Werten sortieren. Irgendwie, wenn diese Person nach ihrer Verkaufskolumne sortieren wollte.
Vielen Dank!