Sorprendido, no he visto esto publicado hasta ahora, así que lo dejaré aquí.
Desempaquetado Iterable Extendido (python3.5 +): [*df]
y Amigos
Las generalizaciones de desempaque (PEP 448) se han introducido con Python 3.5. Entonces, las siguientes operaciones son todas posibles.
df = pd.DataFrame('x', columns=['A', 'B', 'C'], index=range(5))
df
A B C
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
Si quieres un list
...
[*df]
# ['A', 'B', 'C']
O, si quieres un set
,
{*df}
# {'A', 'B', 'C'}
O, si quieres un tuple
,
*df, # Please note the trailing comma
# ('A', 'B', 'C')
O, si desea almacenar el resultado en algún lugar,
*cols, = df # A wild comma appears, again
cols
# ['A', 'B', 'C']
... si eres el tipo de persona que convierte el café en sonidos de mecanografía, bueno, esto consumirá tu café de manera más eficiente;)
PD: si el rendimiento es importante, querrás deshacerte de las soluciones anteriores a favor de
df.columns.to_numpy().tolist()
# ['A', 'B', 'C']
Esto es similar a la respuesta de Ed Chum , pero actualizado para v0.24, donde .to_numpy()
se prefiere el uso de .values
. Vea
esta respuesta (por mí) para más información.
Verificación visual
Como he visto esto discutido en otras respuestas, puede utilizar desempaquetar iterable (sin necesidad de bucles explícitos).
print(*df)
A B C
print(*df, sep='\n')
A
B
C
Crítica de otros métodos
No use un explícito for
bucle para una operación que se puede hacer en una sola línea (las comprensiones de la lista están bien).
A continuación, el uso sorted(df)
no conserva el orden original de las columnas. Para eso, debes usarlist(df)
en lugar.
A continuación, list(df.columns)
y list(df.columns.values)
son sugerencias pobres (a partir de la versión actual, v0.24). Ambas matrices Index
(devueltas de df.columns
) y NumPy (devueltas por df.columns.values
) definen.tolist()
método que es más rápido y más idiomático.
Por último, la enumeración, es decir, list(df)
solo debe usarse como una alternativa concisa a los métodos antes mencionados para python <= 3.4 donde el desembalaje extendido no está disponible.
columns
como atributo?