在列中选择大量数据点

2024-10-03 17:24:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我还有一个list{}的treeID,有600000个条目:

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

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

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

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

然而,这是疯狂的缓慢,花了大约3个小时来浏览这个列表,我有60个这样的文件。有没有办法加快这一进程

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

有没有更好的方法或这是处理这些大型数据集的最佳方法


Tags: 方法代码inidredshiftdataframepandasfor