Surpreso por não ter visto isso publicado até agora, então vou deixar isso aqui.
Descompactação Iterável Estendida (python3.5 +): [*df]
e Amigos
Generalizações de desempacotamento (PEP 448) foram introduzidas com o Python 3.5. Portanto, as seguintes operações são possíveis.
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 você quer um list
....
[*df]
# ['A', 'B', 'C']
Ou, se você quiser um set
,
{*df}
# {'A', 'B', 'C'}
Ou, se você quiser um tuple
,
*df, # Please note the trailing comma
# ('A', 'B', 'C')
Ou, se você deseja armazenar o resultado em algum lugar,
*cols, = df # A wild comma appears, again
cols
# ['A', 'B', 'C']
... se você é o tipo de pessoa que converte café em sons de digitação, bem, isso consumirá seu café com mais eficiência;)
PS: se o desempenho for importante, você desejará abandonar as soluções acima em favor de
df.columns.to_numpy().tolist()
# ['A', 'B', 'C']
Isso é semelhante à resposta de Ed Chum , mas atualizado para a v0.24, onde .to_numpy()
é preferível o uso de .values
. Veja
esta resposta (por mim) para mais informações.
Verificação visual
Como eu já vi isso discutido em outras respostas, você pode utilizar a descompactação iterável (sem necessidade de loops explícitos).
print(*df)
A B C
print(*df, sep='\n')
A
B
C
Crítica de outros métodos
Não use um for
loop explícito para uma operação que possa ser feita em uma única linha (a compreensão da lista está correta).
Em seguida, o uso sorted(df)
não preserva a ordem original das colunas. Para isso, você deve usar em seu list(df)
lugar.
A seguir, list(df.columns)
e list(df.columns.values)
há sugestões ruins (na versão atual, v0.24). As matrizes Index
(retornadas de df.columns
) e NumPy (retornadas por df.columns.values
) definem o .tolist()
método que é mais rápido e mais idiomático.
Por fim, a listagem, por exemplo, list(df)
deve ser usada apenas como uma alternativa concisa aos métodos acima mencionados para python <= 3.4, onde a descompactação estendida não está disponível.
columns
como atributo?