有没有一种方法可以从列表中创建单列pandas DataFrame而不复制列表?

时间:2018-07-13 17:11:12

标签: python list pandas

假设我有以下代码:

import pandas as pd

mylist = [item for item in range(100000)]
df = pd.DataFrame()
df["col1"] = mylist

mylist中的数据在分配给df["col1"]时是否已复制?如果是这样,有办法避免这种复制吗?

编辑:在这种情况下,我的列表是字符串列表。从这些答案中得到的一件事是,如果我改为创建一个由这些字符串组成的numpy数组,那么不会发生重复数据,我称之为df["col1"] = mynparray

1 个答案:

答案 0 :(得分:1)

将列表分配给系列时,将创建一个新的NumPy数组。该数据结构允许对数字类型进行矢量化计算。这样的系列被布置在连续的存储块中。有关更多详细信息,请参见Why NumPy instead of Python lists?

因此,您将需要足够的内存来保存重复数据。这是不可避免的。无法将列表“转换”成适当的Pandas系列。

注意:以上内容与为序列分配NumPy数组时发生的情况无关。

相关问题