Удивлен, я еще не видел это опубликовано, поэтому я просто оставлю это здесь.
Расширенная повторяемая распаковка (python3.5 +): [*df]
и друзья
Обобщения распаковки (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()
метод, который быстрее и более идиоматичен.
Наконец, listification, т. Е. list(df)
Должен использоваться только в качестве краткой альтернативы вышеупомянутым методам для python <= 3.4, где расширенная распаковка недоступна.
[*df]
болееlist(df)
илиdf.columns.tolist()
, это благодаря распаковке обобщений (PEP 448) .