2016-11-02 3 views
0

Я знаю, как удалить столбцы из фрейма данных с помощью Python. Но для моей проблемы набор данных огромен, столбцы, которые я хочу сбросить, сгруппированы или в основном сингулярно распределены по оси заголовка столбца. Есть ли более короткий способ нарезать или отбросить все столбцы с меньшим количеством строк кода, а не писать так, как я это сделал. То, как я это делал здесь, работает, но я хотел бы получить более обобщенный способ.Удаление нескольких столбцов из фрейма данных с использованием Python

Flight_data_copy_final - это переменная, в которой она должна храниться.

Благодаря передовой

Вот мой код:

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

вы можете сделать это следующим образом: 'df.drop ([ 'col1', 'col2', 'col5', 'ColN'], 1)' – MaxU

+4

Вы надеваете» t нужно назначить так много промежуточных переменных. Вы можете сделать 'df.drop ('col1', axis = 1) .drop ('col2', axis = 1) ....'. Или лучше сбросить все cols за одну операцию и, возможно, на место с помощью 'df.drop (['col1', 'col2', 'col5', 'colN'], axis = 1, inplace = True)' – zyxue

ответ

9

Чтобы удалить несколько столбцов одновременно в панд, можно указать имена столбцов, как показано ниже. Опция inplace=True необходима, если требуется, чтобы столбец, затронутый изменением, находился в одном и том же фрейме. В противном случае удалите его.

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

Источник: Python Pandas - Deleting multiple series from a data frame in one command