【问题标题】:Most efficient way to split a pandas dataframe column into several columns将熊猫数据框列拆分为几列的最有效方法
【发布时间】:2019-04-11 13:39:06
【问题描述】:

例如,我有一个数据框列 ('x'),其中包含作为值的列表。

import pandas as pd
jk = pd.DataFrame()
jk['x'] = [[1, 2, 3], [1, 4, 2], [27, 1, 3]]

我使用下面的代码将值拆分为这样的列。但是,我的实际数据集非常大。每个列表中有大约 80、000 行和 16 个值。有没有更有效的方法来做到这一点?

jk1 = pd.DataFrame(jk.x.values.tolist(), columns=['a','b','c'])

【问题讨论】:

  • 在 pandas 中使用列表总是很慢。为什么您不能首先使用列表更改创建数据框的位置。在此处更改创建 jk 的位置,使其不是列表列。

标签: python python-3.x pandas performance dataframe


【解决方案1】:

不,没有更有效的方法

您首先应该避免创建一系列列表。一旦你这样做,你就会留下一个带有嵌套指针层的object dtype 系列。一层指向每个列表,另一层指向每个列表中的单个元素。这会禁止矢量化操作。

【讨论】:

  • @jezrael,也许你误读了这个问题(或者我有)。起点是一系列列表。将其扩展为常规数据框不是可矢量化的过程。因为您从指向更多指针容器的指针开始。 转换后,当然,您可以利用矢量化。
  • @jezrael,请随意添加答案。如果你是对的,我会删除这个:)。
  • @jezrael,哦,是的,这就是 OP 所拥有的。他要求的是比jk.x.values.tolist()更有效的解决方案。我什么都看不到。
猜你喜欢
  • 2018-03-21
  • 2018-12-04
  • 2021-07-27
  • 1970-01-01
  • 2018-07-26
  • 2022-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多