熊猫加入很慢

时间:2017-10-15 22:29:50

标签: pandas

2017年10月16日编辑:我想我发现了这个问题,它似乎是熊猫核心的一个错误。它不能合并/加入超过145k行的任何内容。 144k行,它可以没有问题。 Pandas版本0.20.3,在Fedora 26上运行。

----原帖----

我有一个中等大小的数据要处理(大约200k行,大约40列)。我已经对很多代码进行了优化,但我现在唯一的麻烦就是加入了这些代码。

我收到的数据是一个不幸的结构,需要以某种方式提取数据,然后将其全部放入数据帧中。

基本上我一次提取2个数组(每行200k行)。一个数组是时间戳,另一个数组是值。

这里我创建了一个数据帧,并使用时间戳作为索引。

当我提取第二个数据块时,我也会这样做,并使用新值+时间戳创建一个新的数据帧。

我需要加入索引上的两个数据帧。时间戳可能略有不同,因此我使用了'外部'方法,保持新的时间戳。基本上我遵循以下文档。

result = left.join(右,如何='外部')

https://pandas.pydata.org/pandas-docs/stable/merging.html#joining-on-index

然而,这是缓慢的方式。我离开它大约15分钟,但仍然没有完成处理,所以我杀了这个过程。

有人可以帮忙吗?任何提示/提示?

编辑: 这是一件工作的事情,所以我无法提供数据。但它只是两个长数据帧,每个数据帧都有一个时间戳作为索引,并且只有一列用于值。

代码如上所述。 data_df.join(variable_df,how =' outer')

1 个答案:

答案 0 :(得分:0)

我忘了回答。这并不是熊猫中的错误。

时间戳是十亿分之一秒的时间戳,将它们加入索引会导致速度大大降低。从根本上讲,最好加入一个列-使其更快。