Pandas berechnen den Index nach einer Verkettung neu

8

Ich habe ein Problem, bei dem ich einen Pandas-Dataframe durch Verketten entlang der Zeilenachse (vertikal stapeln) erzeuge.

Jeder der konstituierenden Datenrahmen hat einen automatisch generierten Index (aufsteigende Zahlen).

Nach der Verkettung ist mein Index vermasselt: er zählt bis zu n (wobei n die Form [0] des entsprechenden Datenrahmens ist) und startet beim nächsten Datenrahmen bei Null neu.

Ich versuche "den Index neu zu berechnen, bei der aktuellen Reihenfolge", oder "neu indizieren" (oder so dachte ich). Stellt sich heraus, dass DataFrame.reindex nicht genau das tut.

Hier ist, was ich versucht habe:

%Vor%

Es ist fehlgeschlagen mit "kann nicht von einer doppelten Achse neu indizieren". Ich möchte die Reihenfolge meiner Daten nicht ändern ... muss nur den alten Index löschen und einen neuen erstellen, wobei die Reihenfolge der Zeilen erhalten bleibt.

    
bordeo 20.02.2016, 19:41
quelle

3 Antworten

12

Wenn Sie nach der vertikalen Verkettung einen Index von [0, n) erhalten, gefolgt von [0, m] , müssen Sie nur reset_index :

%Vor%

(Sie können dies mit inplace=True an Ort und Stelle tun.)

%Vor%     
Ami Tavory 20.02.2016, 19:46
quelle
15

Wenn Ihr Index automatisch generiert wird und Sie ihn nicht behalten möchten, können Sie die Option ignore_index verwenden. "

%Vor%

Dies wird automatisch einen neuen Index für Sie generieren, und meine Vermutung ist, dass dies genau das ist, wonach Sie suchen.

    
ilmarinen 20.02.2016 19:51
quelle
1

Das sollte funktionieren:

%Vor%

Setzen Sie auf True , um eine zusätzliche Spalte zu vermeiden in Ihrem Datenrahmen.

    
Mike Müller 20.02.2016 19:46
quelle

Tags und Links