У меня датафрейм выглядит так:
import pandas
import numpy as np
df = DataFrame(np.random.rand(4,4), columns = list('abcd'))
df
a b c d
0 0.418762 0.042369 0.869203 0.972314
1 0.991058 0.510228 0.594784 0.534366
2 0.407472 0.259811 0.396664 0.894202
3 0.726168 0.139531 0.324932 0.906575
Как я могу получить все столбцы, кроме column b
?
Ответы:
Когда столбцы не являются MultiIndex,
df.columns
это просто массив имен столбцов, так что вы можете сделать:источник
drop
лучше использовать IMO. Чуть болееdrop
лучше - я думаю, что полезно выяснить, что (одноуровневые) столбцы - это массивы, с которыми вы можете работать, но, в частности, для удаления столбцов, ониdrop
очень удобочитаемы и хорошо работают со сложными индексами.Не используйте
ix
. Это устарело . Наиболее читаемый и идиоматический способ сделать этоdf.drop()
:Обратите внимание, что по умолчанию
.drop()
не работает на месте; несмотря на зловещее имя,df
этот процесс не пострадал. Если вы хотите навсегда удалитьb
изdf
, сделайтеdf.drop('b', inplace=True)
.df.drop()
также принимает список меток, напримерdf.drop(['a', 'b'], axis=1)
, удалит столбецa
иb
.источник
df.drop([('l1name', 'l2name'), 'anotherl1name'], axis=1)
, Кажется, использует список против кортежа, чтобы определить, хотите ли вы иметь несколько столбцов (список) или ссылаться на мультииндекс (кортеж).df.drop(columns='a')
илиdf.drop(columns=['a', 'b'])
. Можно также заменитьcolumns=
наindex=
.источник
sort=False
если вы хотите , чтобы избежать такого поведения (df.columns.difference(['b'], sort=False)
)Ты можешь использовать
df.columns.isin()
Если вы хотите удалить несколько столбцов, просто:
источник
Вот еще один способ:
Вы просто передаете все отображаемые столбцы, кроме одного, который вам не нужен.
источник
Еще одно небольшое изменение в @Salvador Dali позволяет исключить список столбцов:
или
источник
Я думаю, что лучший способ сделать это - путь, упомянутый Сальвадором Дали. Не то чтобы другие не правы.
Потому что, когда у вас есть набор данных, в котором вы просто хотите выбрать один столбец и поместить его в одну переменную, а остальные столбцы - в другую для сравнения или в вычислительных целях. Тогда удаление столбца набора данных может не помочь. Конечно, для этого есть варианты использования.
Затем вы можете поместить эти коллекции столбцов в переменную
x_cols
в другую переменную, какx_cols1
для других вычислений.источник
Вот одна строка лямбда:
до :
после :
источник