从 Pandas DataFrame 列标题中获取列表

2022-09-05 01:00:18

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

答案 1

您可以通过执行以下操作以列表形式获取值:

list(my_dataframe.columns.values)

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

list(my_dataframe)

答案 2

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

my_dataframe.columns.values.tolist()

.columns返回一个 ,返回一个数组,这有一个帮助器函数来返回一个列表。Index.columns.values.tolist

如果性能对您不那么重要,则对象定义一个可以直接调用的方法:Index.tolist()

my_dataframe.columns.tolist()

性能的差异是显而易见的:

%timeit df.columns.tolist()
16.7 µs ± 317 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%timeit df.columns.values.tolist()
1.24 µs ± 12.3 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

对于那些讨厌打字的人,你可以直接调用 ,如下所示:listdf

list(df)