Mam ramkę danych wyglądającą tak:
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
Jak mogę uzyskać wszystkie kolumny oprócz column b
?
Odpowiedzi:
Gdy kolumny nie są MultiIndex,
df.columns
to tylko tablica nazw kolumn, dzięki czemu możesz:źródło
drop
jest lepsze IMO. Nieco bardziej czytelny i obsługuje multiindeksydrop
jest lepsze - myślę, że warto odkryć, że kolumny (jednopoziomowe) to tablice, z którymi możesz pracować, ale szczególnie w przypadku upuszczania kolumny,drop
są bardzo czytelne i działają dobrze ze złożonymi indeksami.Nie używać
ix
. To jest przestarzałe . Najbardziej czytelnym i idiomatycznym sposobem na zrobienie tego jestdf.drop()
:Zauważ, że domyślnie
.drop()
nie działa w miejscu; pomimo złowieszczego imienia,df
jest nietknięty tym procesem. Jeśli chcesz trwale usunąćb
zdf
, zróbdf.drop('b', inplace=True)
.df.drop()
akceptuje również listę etykiet, np.df.drop(['a', 'b'], axis=1)
upuści kolumnęa
ib
.źródło
df.drop([('l1name', 'l2name'), 'anotherl1name'], axis=1)
. Wygląda na to, że używasz listy vs krotki, aby określić, czy chcesz wielu kolumn (listy), czy też odwoływać się do multiindeksu (krotki).df.drop(columns='a')
lubdf.drop(columns=['a', 'b'])
. Można również wymienićcolumns=
sięindex=
.źródło
sort=False
jeśli chcesz uniknąć tego zachowania (df.columns.difference(['b'], sort=False)
)Możesz użyć
df.columns.isin()
Jeśli chcesz upuścić wiele kolumn, tak proste jak:
źródło
Oto inny sposób:
Po prostu przekazujesz wszystkie kolumny do wyświetlenia, z wyjątkiem tej, której nie chcesz.
źródło
Kolejna niewielka modyfikacja @Salvador Dali umożliwia wykluczenie listy kolumn:
lub
źródło
Myślę, że najlepszym sposobem jest wspomniany przez @Salvador Dali. Nie żeby inni się mylili.
Ponieważ gdy masz zestaw danych, w którym chcesz po prostu wybrać jedną kolumnę i umieścić ją w jednej zmiennej, a resztę kolumn w innej, w celach porównawczych lub obliczeniowych. Następnie upuszczenie kolumny zestawu danych może nie pomóc. Oczywiście istnieją również przypadki użycia.
Następnie możesz umieścić tę kolekcję kolumn w zmiennej
x_cols
w innej zmiennej, tak jak wx_cols1
przypadku innych obliczeń.źródło
Oto jedno liniowa lambda:
przed :
po :
źródło