J'ai une trame de données qui ressemble à ceci:
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
Comment puis-je obtenir toutes les colonnes sauf column b
?
Réponses:
Lorsque les colonnes ne sont pas un MultiIndex, il
df.columns
s'agit simplement d'un tableau de noms de colonnes afin que vous puissiez faire:la source
drop
est meilleure IMO. Un peu plus lisible et gère les multidrop
est meilleure - je pense qu'il est utile de découvrir que les colonnes (à un niveau) sont des tableaux avec lesquels vous pouvez travailler, mais spécifiquement pour supprimer une colonne,drop
est très lisible et fonctionne bien avec des index complexes.Ne pas utiliser
ix
. C'est obsolète . La façon la plus lisible et idiomatique de le faire estdf.drop()
:Notez que par défaut,
.drop()
ne fonctionne pas sur place; malgré le nom inquiétant,df
est indemne de ce processus. Si vous souhaitez supprimer définitivementb
dedf
, faitesdf.drop('b', inplace=True)
.df.drop()
accepte également une liste d'étiquettes, par exempledf.drop(['a', 'b'], axis=1)
, supprimera la colonnea
etb
.la source
df.drop([('l1name', 'l2name'), 'anotherl1name'], axis=1)
. Semble utiliser liste vs tuple pour déterminer si vous voulez plusieurs colonnes (liste) ou faire référence à un multiindex (tuple).df.drop(columns='a')
oudf.drop(columns=['a', 'b'])
. Peut également remplacercolumns=
parindex=
.la source
sort=False
si vous voulez éviter ce comportement (df.columns.difference(['b'], sort=False)
)Vous pouvez utiliser
df.columns.isin()
Lorsque vous souhaitez supprimer plusieurs colonnes, aussi simple que:
la source
Voici une autre façon:
Vous passez juste toutes les colonnes à afficher sauf celle que vous ne voulez pas.
la source
Une autre légère modification de @Salvador Dali permet d'exclure une liste de colonnes:
ou
la source
Je pense que la meilleure façon de procéder est celle mentionnée par @Salvador Dali. Non pas que les autres se trompent.
Parce que lorsque vous avez un ensemble de données où vous souhaitez simplement sélectionner une colonne et la placer dans une variable et le reste des colonnes dans une autre à des fins de comparaison ou de calcul. Ensuite, supprimer la colonne de l'ensemble de données peut ne pas aider. Bien sûr, il existe également des cas d'utilisation.
Ensuite, vous pouvez mettre cette collection de colonnes en variable
x_cols
dans une autre variable commex_cols1
pour d'autres calculs.la source
Voici un lambda d'une ligne:
avant :
après :
la source