在列中选择大量数据点

时间:2015-12-02 20:01:08

标签: python pandas bigdata

我的DataFrame有6列,超过2600万行名为data

id, redshift, treeID
2,  0.0,      100000
5,  0.0,      340000
...
39495, 0.0,   500000

我还有list treeID个,有600,000个条目:

id = [100000,490000, ... 500000]

我想创建一个新的list,其中treeIDs中的data等于id中的list s。我正在尝试的代码是

list = []
for x in id:
    transition = data[data['treeID'] == x]
    list.append(transition)

然后我会使用pandas.concat([list,0])来合并所有不同的数组。

然而,这是非常慢的,花了大约3个小时来完成这个列表,我有60个这样的文件。有没有办法加快这个过程?

我考虑过将初始数据文件分成几个较小的DataFrame,然后将其并行化,但这似乎是糟糕的形式。

有更好的方法还是处理这些大型数据集的最佳方式?

1 个答案:

答案 0 :(得分:0)

还有

transition = data[data['treeId'].isin(id)]