python - 有没有办法从列表创建单列 pandas DataFrame 而不复制列表?

标签 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

最佳答案

将列表分配给系列时,会创建一个新的 NumPy 数组。此数据结构允许对数字类型进行矢量化计算。此类系列布置在连续的内存块中。请参阅Why NumPy instead of Python lists?了解更多详情。

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

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

关于python - 有没有办法从列表创建单列 pandas DataFrame 而不复制列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51329934/

相关文章:

python - 使用 python 存储基于日期的数据的好方法?

Python:查找列表中的所有元素是否都相同,除了恰好 2 个数字

python - python有列表构造函数吗?

python - 使用 Pandas 对每组关键字对进行交叉制表计数

python - 绘制数据框列 - 日期时间

python - 使用任务创建 celery 管道,仅当前一个任务中的一定数量的项目堆叠时才运行

python - 我尝试使用 python 函数写入 azure blob 存储时遇到 Value 'func.Out' is unsubscriptable

python - 带有嵌套类的 SQLalchemy

python - 将字符串列表拆分为列表列表,包括 Python 中的原始字符串

r - 为什么R的data.table比pandas快得多?