Sorpreso non ho visto questo post finora, quindi lo lascerò qui.
Extended Iterable Unpacking (python3.5 +): [*df]
and Friends
Le generalizzazioni di decompressione (PEP 448) sono state introdotte con Python 3.5. Quindi, le seguenti operazioni sono tutte possibili.
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
Se vuoi un list
....
[*df]
# ['A', 'B', 'C']
Oppure, se vuoi un set
,
{*df}
# {'A', 'B', 'C'}
Oppure, se vuoi un tuple
,
*df, # Please note the trailing comma
# ('A', 'B', 'C')
Oppure, se si desidera memorizzare il risultato da qualche parte,
*cols, = df # A wild comma appears, again
cols
# ['A', 'B', 'C']
... se sei il tipo di persona che converte il caffè in suoni di battitura, beh, questo consumerà il tuo caffè in modo più efficiente;)
PS: se le prestazioni sono importanti, vorrai abbandonare le soluzioni sopra a favore di
df.columns.to_numpy().tolist()
# ['A', 'B', 'C']
Questo è simile alla risposta di Ed Chum , ma aggiornato per v0.24 dove .to_numpy()
è preferito l'uso di .values
. Vedi
questa risposta (da me) per maggiori informazioni.
Controllo visivo
Poiché ne ho visto la discussione in altre risposte, è possibile utilizzare la decompressione iterabile (non sono necessari loop espliciti).
print(*df)
A B C
print(*df, sep='\n')
A
B
C
Critica ad altri metodi
Non usare un esplicito for
ciclo per un'operazione che può essere eseguita su una sola riga (le comprensioni dell'elenco sono corrette).
Successivamente, l'utilizzo sorted(df)
non mantiene l'ordine originale delle colonne. Per questo, dovresti usarelist(df)
invece.
Quindi, list(df.columns)
e list(df.columns.values)
suggerimenti scadenti (a partire dalla versione corrente, v0.24). Entrambi Index
(tornati da df.columns
) e array NumPy (restituiti da df.columns.values
) definiscono.tolist()
metodo che è più veloce e più idiomatica.
Infine, l'elenco, ad esempio, list(df)
dovrebbe essere usato solo come alternativa concisa ai metodi di cui sopra per python <= 3.4 dove non è disponibile il decompressione estesa.
columns
come attributo?