Was ist der beste Weg, um entfernen von Spalten in pandas
Ich Hebe diese Frage für mich selber zu lernen. Soweit ich weiß, folgenden werden die verschiedenen Methoden zum entfernen von Spalten in pandas dataframe.
Option - 1:
df=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10],'c':[11,12,13,14,15]})
del df['a']
Option - 2:
df=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10],'c':[11,12,13,14,15]})
df=df.drop('a',1)
Option - 3:
df=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10],'c':[11,12,13,14,15]})
df=df[['b','c']]
- Was ist der beste Ansatz, unter diesen?
- Andere Ansätze, um das gleiche zu erreichen?
- Option-2 ist am häufigsten. Es ist pandas zu löschen Spalten von dataframe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgen Sie den doc:
Und
pandas.DataFrame.drop
:So, ich denke, wir sollten stick mit
df.drop
. Warum? Ich denke, die Vorteile sind:Es gibt uns mehr Kontrolle über die Aktion zu entfernen:
Kann es kompliziertere Fälle mit args. E. g. mit
level
übernehmen wir MultiIndex löschen. Und miterrors
können wir verhindern, dass einige bugs.Es ist eine einheitliche und Objekt-orientierte Weg.
Und genau wie @jezrael bemerkte in seiner Antwort:
Option 1: Mit dem Schlüssel-Wort
del
ist begrenzt.Option 3: Und
df=df[['b','c']]
ist das nicht sogar eine Löschung im Wesen. Die ersten, die es wählen Sie die Daten durch Indizierung mit[]
syntax, dann lösen Sie die Namendf
mit dem ursprünglichen DataFrame, und binden Sie es mit dem neuen (d.h.df[['b','c']]
).Ist die empfohlene Methode zum löschen einer Spalte oder Zeile in pandas dataframes ist mit drop.
Um eine Spalte zu löschen,
Um eine Zeile zu löschen,
Finden Sie dieser Beitrag zu sehen, ein ausführliches Gespräch über Spalte löschen Ansätze.
Meiner Meinung nach die beste ist 2. und 3. option, denn Erstens hat Grenzen - Sie können entfernen Sie nur eine Spalte und nicht verwenden die Punkt-notation -
del df.a
.3.Lösung ist nicht das löschen, aber die Auswahl und piRSquared schöne Antwort für mehrere mögliche Lösungen, die mit der gleichen Idee.
Ab einer Geschwindigkeit Perspektive, Variante 1 scheint der beste zu sein. Natürlich basierend auf die anderen Antworten, das bedeutet nicht, es ist tatsächlich die beste option.
%timeit
Magischer Befehl erbaut im IPython:%timeit -n 100000 df=df.drop('a',1)
.