Tengo un marco de datos como este:
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
¿Cómo puedo obtener todas las columnas excepto column b
?
Respuestas:
Cuando las columnas no son un MultiIndex,
df.columns
es solo una matriz de nombres de columnas para que pueda hacer:fuente
drop
es mejor IMO. Un poco más legible y manejadrop
es mejor; creo que es útil descubrir que las columnas (de un solo nivel) son matrices con las que puede trabajar, pero específicamente para soltar una columna,drop
es muy legible y funciona bien con índices complejos.No utilice
ix
. Está en desuso . La forma más legible e idiomática de hacer esto esdf.drop()
:Tenga en cuenta que, de manera predeterminada,
.drop()
no funciona en el lugar; a pesar del nombre ominoso, nodf
sufre daños por este proceso. Si desea eliminar de forma permanenteb
a partirdf
, hacerdf.drop('b', inplace=True)
.df.drop()
también acepta una lista de etiquetas, por ejemplodf.drop(['a', 'b'], axis=1)
, soltará la columnaa
yb
.fuente
df.drop([('l1name', 'l2name'), 'anotherl1name'], axis=1)
. Parece utilizar list vs tuple para determinar si desea varias columnas (list) o hacer referencia a un índice múltiple (tuple).df.drop(columns='a')
odf.drop(columns=['a', 'b'])
. También se puede reemplazarcolumns=
conindex=
.fuente
sort=False
si desea evitar ese comportamiento (df.columns.difference(['b'], sort=False)
)Puedes usar
df.columns.isin()
Cuando desee soltar varias columnas, tan simple como:
fuente
Aquí hay otra manera:
Simplemente pasa todas las columnas para que se muestren, excepto la que no deseas.
fuente
Otra pequeña modificación a @Salvador Dali permite excluir una lista de columnas:
o
fuente
Creo que la mejor manera de hacerlo es la mencionada por @Salvador Dali. No es que los otros estén equivocados.
Porque cuando tiene un conjunto de datos en el que solo desea seleccionar una columna y colocarla en una variable y el resto de las columnas en otra para fines de comparación o computacionales. Luego, dejar caer la columna del conjunto de datos podría no ayudar. Por supuesto, también hay casos de uso para eso.
Luego puede poner esa colección de columnas en variable
x_cols
en otra variable comox_cols1
para otro cálculo.fuente
Aquí hay una línea lambda:
antes :
despues :
fuente