2016-11-02 4 views
0

Ich weiß, wie Sie Spalten aus einem Datenrahmen mit Python löschen. Aber für mein Problem ist der Datensatz riesig, die Spalten, die ich löschen möchte, sind zusammen gruppiert oder sind im Wesentlichen einzeln über die Spaltenüberschriftachse verteilt. Gibt es eine kürzere Möglichkeit, alle Spalten mit weniger Codezeilen zu zerlegen oder zu löschen, anstatt sie so zu schreiben, wie ich es getan habe? Die Art und Weise, wie ich es hier gemacht habe, funktioniert, aber ich hätte gerne einen zusammenfassenderen Weg.Löschen mehrerer Spalten aus einem Datenrahmen mit Python

Das flight_data_copy_final ist die Variable, in der es gespeichert werden sollte.

Vielen Dank im fortgeschrittenen

Hier ist mein Code:

from IPython.display import display 

flight_data_copy_version1 = flight_data_copy.drop(flight_data_copy.ix[:,"Year": "FlightDate"].columns, axis=1) 
flight_data_copy_version2 = flight_data_copy_version1.drop("TailNum", axis=1) 
flight_data_copy_version3 = flight_data_copy_version2.drop("OriginStateFips", axis=1) 
flight_data_copy_version4 = flight_data_copy_version3.drop("DestStateFips", axis=1) 
flight_data_copy_version5 = flight_data_copy_version4.drop("Diverted", axis=1) 
flight_data_copy_version6 = flight_data_copy_version5.drop("Flights", axis=1) 
flight_data_copy_final = flight_data_copy.drop(flight_data_copy_version6.ix[:,"FirstDepTime":].columns, axis=1) 

print (display (flight_data_copy_final)) 
+6

können Sie es auf diese Weise tun: 'df.drop ([ 'col1', 'col2', 'COL5', 'coln'], 1)' – MaxU

+4

Sie don‘ t müssen so viele Zwischenvariablen zuweisen. Sie könnten 'df.drop ('col1', axis = 1) .drop ('col2', axis = 1) ....'. Oder besser alle cols in einer Operation fallen lassen und möglicherweise mit 'df.drop (['col1', 'col2', 'col5', 'colN'], Achse = 1, Inplace = True)' einlagern – zyxue

Antwort

9

mehrere Spalten gleichzeitig in Pandas zu löschen, können Sie die Spaltennamen angeben, wie unten dargestellt. Die Option inplace=True wird benötigt, wenn die Spalte mit der betroffenen Änderung im selben Datenfeld enthalten sein soll. Sonst entferne es.

flight_data_copy.drop(['TailNum', 'OriginStateFips', 
       'DestStateFips', 'Diverted'], axis=1, inplace=True) 

Quelle: Python Pandas - Deleting multiple series from a data frame in one command

Verwandte Themen