我想从Pandas DataFrame中获得列标题的列表。DataFrame将来自用户输入,所以我不知道有多少列或它们将被称为什么。

例如,如果我有一个这样的数据帧:

>>> my_dataframe
    y  gdp  cap
0   1    2    5
1   2    3    9
2   8    7    2
3   3    4    7
4   6    7    7
5   4    8    3
6   8    2    8
7   9    9   10
8   6    6    4
9  10   10    7

我会得到一个这样的列表:

>>> header_list
['y', 'gdp', 'cap']

当前回答

它变得更简单(由Pandas 0.16.0):

df.columns.tolist()

会给你一个很好的列表中的列名。

其他回答

import pandas as pd

# create test dataframe
df = pd.DataFrame('x', columns=['A', 'B', 'C'], index=range(2))

list(df.columns)

返回

['A', 'B', 'C']

你可以通过以下方式获取值:

list(my_dataframe.columns.values)

你也可以简单地使用(如Ed Chum的回答所示):

list(my_dataframe)

它的简单代码为您:

for i in my_dataframe:
    print(i)

尽管去做

>>> list(my_dataframe)
['y', 'gdp', 'cap']

要在调试器模式下列出数据帧的列,使用列表理解式:

>>> [c for c in my_dataframe]
['y', 'gdp', 'cap']

顺便说一下,你可以简单地使用sorted:

>>> sorted(my_dataframe)
['cap', 'gdp', 'y']