熊猫的连接性能
我从同一张表中加载数据,但它非常大。 1百万条记录。我认为最好创建250,000个大块,所以我得到4个DataFrame。熊猫的连接性能
frames = []
for chunk in chunks(some_very_large_list, 250000):
frames.append(pd.DataFrame(data=chunk, columns=['A', 'B', 'C']))
当我打电话pd.concat(frames)
它正在采取非常长的时间合并在一起的一切。加速这一过程的最佳方式是什么?
有两件事你可以尝试,可能会或可能不会帮助:
- 预分配内存对于大数据,并将每个块在其位置。
- 使用2d numpy数组(如果可能)并将所有内容传输到数据帧后。
你可以扩展如何做项目#2吗? –
如果您可以根据给出的示例提供代码以便这样做,那也许会很好吗? – Archie
对于我来说,这似乎是类似于你的,我发现最好的办法是使用附加功能:
数据框= pd.DataFrame()
dataframe.append(帧,ignore_index = True)
此方法是否创建新的数据框?帧对象是否必须是数据帧还是可以传入帧列表? –
不,它不返回新的数据帧,但在我的示例中,它更新名为dataframe的DataFrame对象。您必须传递一个DataFrame对象的列表(如您的框架变量,它是DataFrame的列表)。 –
您是否将其与装载所有数据的单片模块进行比较? – languitar
是的,该性能并不好,因为我必须从非本地支持数据库加载所有内容。 –