Здивований, що я цього разу ще не бачив, тому я просто залишу це тут.
Розширене ітерабельне розпакування (python3.5 +): [*df]
та Friends
Розпакування узагальнень (PEP 448) було введено з Python 3.5. Отже, можливі наступні операції.
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
Якщо ви хочете list
...
[*df]
# ['A', 'B', 'C']
Або, якщо ви хочете set
,
{*df}
# {'A', 'B', 'C'}
Або, якщо ви хочете tuple
,
*df, # Please note the trailing comma
# ('A', 'B', 'C')
Або, якщо ви хочете зберегти результат десь,
*cols, = df # A wild comma appears, again
cols
# ['A', 'B', 'C']
... якщо ви такий тип людини, який перетворює каву на введення звуків, ну, це споживає вашу каву більш ефективно;)
PS: якщо продуктивність важлива, ви хочете відкинути вищевикладені рішення на користь
df.columns.to_numpy().tolist()
# ['A', 'B', 'C']
Це схоже на відповідь Еда Чума , але оновлено для версії v0.24, де .to_numpy()
кращим є використання .values
. Дивіться
цю відповідь (мною) для отримання додаткової інформації.
Візуальна перевірка
Оскільки я бачив це, що обговорювалося в інших відповідях, ви можете використовувати ітерабельне розпакування (не потрібно явних циклів).
print(*df)
A B C
print(*df, sep='\n')
A
B
C
Критика інших методів
Не використовуйте явний for
цикл для операції, яку можна виконати в одному рядку (розуміння списку нормально).
Далі, використовуючи sorted(df)
, не зберігається початковий порядок стовпців. Для цього слід використовувати list(df)
замість цього.
Далі list(df.columns)
і list(df.columns.values)
є погані пропозиції (станом на поточну версію, v0.24). І масиви Index
(повернуті з df.columns
), і NumPy (повернуті df.columns.values
) визначають .tolist()
метод, який є швидшим і ідіоматичнішим.
Нарешті, розписання, тобто, list(df)
слід використовувати лише як стислу альтернативу вищезгаданим методам для python <= 3.4, якщо розширене розпакування недоступне.
columns
атрибутом?