当前位置: 首页 > 知识库问答 >
问题:

从pandas DataFrame列标题获取列表

封梓
2023-03-14

我想从pandas数据框架中获取列标题的列表。数据框架将来自用户输入,所以我不知道将有多少列,也不知道它们将被调用什么。

例如,如果给我一个如下所示的数据帧:

>>> 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']

共有3个答案

胡沈义
2023-03-14

进行了一些快速测试,使用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

(我仍然非常喜欢列表(数据框架),谢谢Edchum!)

贲绪
2023-03-14

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

my_dataframe.columns.values.tolist()

.columns.values返回索引,.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)

对于那些讨厌打字的人,您可以只在df上调用list,如下:

list(df)
封弘伟
2023-03-14

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

list(my_dataframe.columns.values)

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

list(my_dataframe)
 类似资料:
  • 我想从数据帧中获取列标题列表。数据帧将来自用户输入,因此我不知道将有多少列或它们将被调用。 例如,如果我得到这样的DataFrame: 我会得到这样的列表:

  • 问题内容: 我想从获取列标题的列表。DataFrame来自用户输入,所以我不知道会有多少列或它们将被称为什么。 例如,如果给我这样的: 我想要一个这样的列表: 问题答案: 你可以执行以下操作以列表形式获取值: 你也可以简单地使用:(如Ed Chum的答案所示):

  • 编辑:这个问题已经过时了 在我问这个问题的时候,身份框架是一个移动的目标。作者改变了相当多的东西,他们已经脱钩了其他几个,使一切变得更容易。 看一下GitHub上的ASP.NET标识示例项目。 我得到一个异常。ApplicationDbContext的定义由新建应用程序向导自动生成: 因此,我的猜测是,列用于区分和。但是,它不存在于我的数据库中(该数据库是由应用程序自动创建的)

  • 我一直在尝试获取一个可能的结果列表(与在维基百科中搜索时得到的结果相同)和一个小的文章摘要,通常是第一段。 到目前为止,我能得到的要么是标题列表: https://en.wikipedia.org/w/api.php?action=query 或单个页面的摘要: https://en.wikipedia.org/w/api.php?action=query 是否有可能以类似于此的形式组合这两个查询

  • 接口说明 获取标注图片列表 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /wish3dearth/api/scene/marker/v1.0.0/list 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN 响应字段说明 无 响应成功示例 {

  • 接口说明 获取标注图片列表 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /wish3dearth/api/scene/marker/v1

  • 问题内容: 我有一个Java API,它返回的列表如下: 我正在使用以下scala代码: 现在,如果我尝试使用scala语法糖,例如: 这是行不通的。我得到错误: 看来我需要将Java列表转换为Scala列表。在上述情况下该怎么做? 问题答案: 从 Scala 2.8开始, 此转换现在已使用以下语言构建: 作品。不工作 在2.12.x中使用 在2.13.x中使用

  • 问题内容: 我有一个字典列表,我需要从字典的给定键中获取值的列表(所有字典都具有相同的键)。 例如,我有: 我需要得到1,2,3 当然,我可以通过以下方式获得它: 但是我想找到一种更好的方法。 问题答案: 使用简单的列表推导(如果您确定每个字典都有键): 否则,您需要首先检查是否存在: