在列中选择大量数据点
Posted
技术标签:
【中文标题】在列中选择大量数据点【英文标题】:Selecing a large number of data points in column 【发布时间】:2015-12-02 20:01:07 【问题描述】:我有一个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
,只有data
中的treeIDs
等于list
中的id
s。我正在尝试的代码是
list = []
for x in id:
transition = data[data['treeID'] == x]
list.append(transition)
然后我会使用 pandas.concat([list,0])
来合并所有不同的数组。
但是,这非常慢,大约需要 3 个小时才能浏览此列表,而我有 60 个这样的文件。有没有办法加快这个过程?
我曾考虑将初始数据文件分成几个较小的DataFrame
,然后将其并行化,但这似乎是一种糟糕的形式。
是否有更好的方法或者是处理这些大型数据集的最佳方法?
【问题讨论】:
【参考方案1】:还有
transition = data[data['treeId'].isin(id)]
【讨论】:
这正是我想要的!现在大约需要 20 秒,而不是 3 小时。以上是关于在列中选择大量数据点的主要内容,如果未能解决你的问题,请参考以下文章