it-swarm.com.de

Datenrahmen aller außer einer bestimmten Spalte abrufen

Gibt es eine Möglichkeit, alle außer einer Spalte in einem Pandas-DataFrame-Objekt auszuwählen? Ich habe Möglichkeiten gesehen, eine Spalte zu löschen, aber ich möchte das nicht tun.

55
user1802143

verwenden Sie drop Methode:

df.drop(column_name, axis=1)
86
HYRY
df.loc[:, df.columns != col]

dabei ist col der Name der Spalte, die ausgelassen werden soll.

41
lev

sie können einfach die gewünschten Spalten auswählen, ohne sie zu löschen oder zu löschen:

collist = ['col1', 'col2', 'col3']
df1 = df[collist]

Übergeben Sie einfach eine Liste der gewünschten Spalten

Sie können auch die Liste der Spalten abrufen und dann aus dieser Liste auswählen

collist = df.columns.tolist()
# you can now select from this list any arbritrary range
df1 = df[collist[0:1]]
# or remove a column
collist.remove('col2')
# now select
df1 = df[collist]
# df1 will now only have 'col1' and 'col3'
14
EdChum

Sie können mit numpy eine Maske erstellen:

import numpy as np
columns = df.columns
mask = np.ones(columns.shape, dtype=bool)
i = 4 #The specified column that you don't want to show
mask[i] = 0
df[columns[mask]]
2
efajardo

Als Option können Sie alle Spalten außer einer (oder vielen) mit einer Listenverständnis- und einer Df.loc-Methode auswählen:

select = [x for x in df.columns if x != "column_you_don't_want"]
df.loc[:, select]

Wenn Sie mehr als eine Spalte weglassen möchten, können Sie Folgendes versuchen:

columns_dont_want = ["col1", "col2"]
select = [x for x in df.columns if x not in columns_dont_want]
df.loc[:, select]
1
Ivan Calderon
df[ df.columns[df.columns!='not_this_column'] ]
0
pgalilea