python - Pandas concat 是就地函数吗?

标签 python pandas

我想这个问题需要对 concat 的实现有一些了解。

比如说,我有30个文件,每个1G,我最多只能使用32G内存。我将文件加载到名为“list_of_pieces”的 DataFrame 列表中。这个 list_of_pieces 的大小应该是 ~ 30G,对吧?

如果我执行 pd.concat(list_of_pieces),concat 是否会在堆中分配另一个 30G(或者可能是 10G 15G)并执行一些操作,或者它在没有的情况下“就地”运行连接分配新内存?

有人知道吗?

谢谢!

最佳答案

答案是否定的,这不是就地操作; np.concatenate 在后台使用,请参见此处:Concatenate Numpy arrays without copying

解决该问题的更好方法是将这些片段中的每一个写入 HDFStore 表,请参见此处:http://pandas.pydata.org/pandas-docs/dev/io.html#hdf5-pytables对于文档,在这里:http://pandas.pydata.org/pandas-docs/dev/cookbook.html#hdfstore对于一些食谱。

然后您可以根据需要选择任何部分(甚至整个集合)(通过查询甚至行号)

某些类型的操作甚至可以在数据在磁盘上时完成:https://github.com/pydata/pandas/issues/3202?source=cc ,这里:http://pytables.github.io/usersguide/libref/expr_class.html#

关于python - Pandas concat 是就地函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16982936/

相关文章:

Python:当从单独的文件中提取元素定位器信息时,使用 Webdriver 时为 "__init__() takes 2 positional arguments but 3 were given”

python - 使用Python从docx解析表

python - 运行时错误: size mismatch, m1 : [28 x 28], m2:[784 x 128]

python - 如何匹配字符串中的确切单词?

python - 在 Pandas 中根据多个条件过滤 DataFrame

python - 转换为以行作为列表的普通数据框。将行拆分为列

python - 同步 Python 脚本?

python - 如何将给定 Pandas 数据帧行中的所有(字符串)值连接到一个字符串?

python - 使用 Python 的 TWS 交互式经纪商 API。当通过多种方法接收实时数据时,无法将实时数据放在一起

python - 基于其他数据框向 Pandas 数据框添加新列