如何将 pandas dataframe 列标题获取为列表
pandas 是用于 python 数据分析的开源软件包。pandas.dataframe 是主要的 pandas 数据结构。它是带有标签轴(行和列)的二维表格数据结构。
我们今天来介绍如何从 dataframe
对象获取列标题的列表。
我们将在本教程的所有其他代码示例中使用相同的如下面定义的 dataframe
对象。
>>> import pandas
>>> cities = {
... 'name': ['new york', 'los angeles', 'chicago'],
... 'population': [8601186, 4057841, 2679044],
... 'state': ['ny', 'ca', 'il'],
... }
>>> data_frame = pandas.dataframe(cities)
获取 dataframe
列名的一种方法是迭代 dataframe
对象本身。dataframe
迭代器按定义顺序返回列名。
>>> for column in data_frame:
... print(column)
...
name
population
state
当需要将可迭代对象转换为列表时,可以在其上调用 python 的内置 list
函数。
>>> list(data_frame)
['name', 'population', 'state']
但是,此方法的性能很慢。
>>> from timeit import timeit
>>> timeit(lambda: list(data_frame))
7.818843764999997
我们还可以从 dataframe.columns
属性访问其列。
>>> list(data_frame.columns)
['name', 'population', 'state']
否则,我们可以使用 dataframe.columns.tolist()
函数来实现相同的目的。
>>> data_frame.columns.tolist()
['name', 'population', 'state']
这两种方法的性能都不是特别好。
>>> timeit(lambda: list(data_frame.columns))
7.143133517000024
>>> timeit(lambda: data_frame.columns.tolist())
6.064925153999866
遍历 dataframe.columns.values
属性时,事情发生了很大变化。同样,与 dataframe
对象和 dataframe.columns
属性一样,我们可以使用它来获取一系列 dataframe
列名。
>>> list(data_frame.columns.values)
['name', 'population', 'state']
与以前的方法相比,此方法的性能提高了 5 到 6 倍。
>>> timeit(lambda: list(data_frame.columns.values))
1.301724927000123
但是,如果使用内置 dataframe.columns.values.tolist()
方法,则可以实现最佳运行时间。
>>> data_frame.columns.values.tolist()
['name', 'population', 'state']
>>> timeit(lambda: data_frame.columns.values.tolist())
0.6860591469999235
如我们所见,这种方法的性能比直接在 dataframe
对象上进行迭代要好十倍。大多数读者会对这种性能差异背后的原因感到好奇。
答案隐藏在 dataframe.columns.values
属性的数据类型中。这是一个 numpy 数组。numpy 是用于科学计算的 python 软件包,维护人员会对其性能进行高度优化。
pandas 构建在 numpy 之上,并提供了方便的高级抽象。因此,在较低级别的 numpy 数据结构上执行直接操作几乎总是比在 pandas 较高级别的数据结构上执行类似操作快。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串