2016-07-25 13 views
2

So habe ich einen Datenrahmen in Pandas, der die Geschlechter einiger Patienten enthält. Ich wollte nach Geschlecht sortiert werden so verwendet I:Entfernte Zeilen von Pandas Dataframe - jetzt Indizes sind vermasselt?

df = df[df.Gender == 0] 

aber jetzt, wenn ich den Datenrahmen drucke ich so etwas wie:

Gender 
0  0 
2  0 
5  0 

, wo die Zeilenindizes auf der linken Seite bleiben, was sie vor der Reihe waren Entfernung und "resequence" nicht zurück zu 0, 1, 2 usw., was es schwierig oder unmöglich macht, gerade jetzt zu iterieren. Wie könnte ich die Zeilenindizes neu sortieren?

+1

Haben Sie 'df.reset_index()' ausprobiert? – Abdou

+1

Was versuchen Sie mit den Ergebnissen? Sie sollten sich den Index als eine Menge von * Labels * vorstellen, wobei jeder Zeile ein Label zugeordnet ist. Der Index für eine bestimmte Zeile gehört genau wie die Spalten zu den Daten dieser Zeile. Sie sind nicht als reine fortlaufende Nummern gedacht, obwohl Sie sie als solche festlegen können. – BrenBarn

+2

sollte das funktionieren 'df [df.Gender == 0] .reset_index()'. – shivsn

Antwort

0
df = df[df.Gender == 0] 

ist eine Scheibe unter dem dfdf.Gender zu 0 gleich war. Das ist so, wie Sie es erwartet haben. Es bringt auch die Zeilenindizes für jede der Zeilen mit, die df.Gender gleich 0 war. Das ist richtig und hat viele wunderbare Vorteile.

Wenn Sie das nicht sehen wollen und stattdessen eine Bestellung von 0 zu was auch immer möchten, dann tun Sie wie die anderen in den Kommentaren vorgeschlagen haben.

df = df[df.Gender == 0].reset_index(drop=True) 
+0

Danke für die Antworten, die Methode reset_index funktioniert! Für dieses Projekt brauche ich nur einen schnellen Weg, um diese Zeilen zu entfernen und so zu tun, als wären sie nie in Bezug auf Indizes; Ich habe ein ID-Attribut, das die ursprünglichen Informationen nachverfolgt, die ich sowieso verlieren würde. Ich kann die Funktionalität schätzen, aber das sollte jetzt funktionieren. Danke noch einmal! – MrDinkleburg

Verwandte Themen