假设我有这段代码:
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/