从pandas DataFrame列标题中获取列表

我想从pandas DataFrame中获取列标题的列表。 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)

你也可以简单地使用:

list(my_dataframe)

有一个内置的方法是最高性能的:

my_dataframe.columns.values.tolist()

.columns返回一个Index.columns.values返回一个array并且它有一个帮助函数来返回一个list

编辑

对于那些讨厌打字的人来说,这可能是最短的方法:

list(df)

做了一些快速测试,也许毫不奇怪,使用dataframe.columns.values.tolist()的内置版本是最快的:

In [1]: %timeit [column for column in df]
1000 loops, best of 3: 81.6 µs per loop

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

In [3]: %timeit list(df)
10000 loops, best of 3: 44.9 µs per loop

In [4]: % timeit list(df.columns.values)
10000 loops, best of 3: 38.4 µs per loop

(尽管我仍然非常喜欢list(dataframe)框),所以非常感谢EdChum!)

链接地址: http://www.djcxy.com/p/12231.html

上一篇: Get list from pandas DataFrame column headers

下一篇: How to iterate over rows in a DataFrame in Pandas?