从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!)