Löschen Sie die Zeile in Panda Series und bereinigen Sie den Index

9

Ich habe eine Panda-Serie und basierend auf einer Zufallszahl möchte ich eine Zeile auswählen (5 im Codebeispiel unten) und diese Zeile löschen. Wenn die Zeile gelöscht wird, möchte ich einen neuen Index für die verbleibenden Zeilen (0 bis 8) erstellen. Der Code unten:

%Vor%

Und das ist die Ausgabe:

%Vor%

Mein Problem ist, dass die Zeilennummer 8 gelöscht wird. Ich möchte Zeile "5 NaN" fallen lassen und -0,000052 mit einem Index von 0 bis 8 behalten. So möchte ich aussehen:

%Vor%     
Jonas 23.01.2013, 19:14
quelle

2 Antworten

7

Etwas verwirrend bedeutet reindex nicht "einen neuen Index erstellen". Um einen neuen Index zu erstellen, weisen Sie einfach das Attribut index zu. Also mach bei deinem letzten Schritt einfach sample_mean_series.index = range(len(sample_mean_series)) .

    
BrenBarn 23.01.2013, 19:17
quelle
6

Hier ist ein One-Liner:

%Vor%

Ich verwende die Methode Series.drop , um Zeile 5 zu löschen und dann reset_index zu verwenden, um die Indizes neu zu nummerieren, damit sie fortlaufend sind. Ohne reset_index zu verwenden, würden die Indizes ohne 5 von 4 auf 6 springen.

Standardmäßig verschiebt reset_index den ursprünglichen Index in ein DataFrame und gibt ihn neben den Serienwerten zurück. Das Übergeben von drop=True verhindert dies.

%Vor%     
Zelazny7 23.01.2013 19:24
quelle

Tags und Links