我想从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']

当前回答

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

list(my_dataframe.columns.values)

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

list(my_dataframe)

其他回答

n = []
for i in my_dataframe.columns:
    n.append(i)
print n

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

list(my_dataframe.columns.values)

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

list(my_dataframe)
import pandas as pd

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

list(df.columns)

返回

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

这很有趣,但df.columns.values.tolist()几乎比df.columns.tolist()快三倍,但我认为它们是相同的:

In [97]: %timeit df.columns.values.tolist()
100000 loops, best of 3: 2.97 µs per loop

In [98]: %timeit df.columns.tolist()
10000 loops, best of 3: 9.67 µs per loop

正如Simeon Visser的回答,你可以这样做

list(my_dataframe.columns.values)

or

list(my_dataframe) # For less typing.

但我认为最完美的地方是:

list(my_dataframe.columns)

它是明确的,同时不是不必要的长。