Pandas dropna - speichert verworfene Zeilen

8

Ich verwende die pandas.DataFrame.dropna Methode zum Löschen von Zeilen, die NaN enthalten. Diese Funktion gibt einen Datenrahmen zurück, der die abgelegten Zeilen ausschließt, wie in der Dokumentation gezeigt.

Wie kann ich eine Kopie der gelöschten Zeilen als separaten Datenrahmen speichern? Ist:

%Vor%

liefert immer die gleichen Zeilen, die dropna fallen, wenn man annimmt, dass dropna mit subset=['list', 'of', 'columns'] ?

aufgerufen wird     
wesanyer 15.12.2015, 18:01
quelle

2 Antworten

10

Sie können dies tun, indem Sie den ursprünglichen DataFrame indizieren, indem Sie die unary-Methode verwenden ~ (Invert) -Operator , um die Umkehrung des NA-freien DataFrame zu geben.

%Vor%

Eine andere Möglichkeit wäre, die Implementierung von ~ zu verwenden. .

%Vor%     
anmol 15.12.2015, 19:51
quelle
2

Ich wollte einen Kommentar hinterlassen, dachte mir aber, ich würde eine Antwort schreiben, da es ziemlich kompliziert wird. Beginnen Sie mit dem folgenden Datenrahmen:

%Vor%

Und sagen wir wollen behalten Zeilen mit Nans in den Spalten col2 und col3 Eine Möglichkeit, dies zu tun, ist die folgende: Die basiert auf den Antworten von dieser Beitrag

%Vor%

Das gibt uns die Zeilen, die fallen gelassen würden, wenn wir Zeilen mit Nans in den Spalten von Interesse fallen lassen würden. Um die Spalten zu behalten, können wir denselben Code ausführen, aber mit ~ die Auswahl umkehren

%Vor%

Dies entspricht:

%Vor%

Was wir testen können:

%Vor%

Sie können das natürlich auf Ihren eigenen größeren Datenfeldern testen, sollten aber die gleiche Antwort erhalten.

    
johnchase 15.12.2015 19:29
quelle

Tags und Links