gpt4 book ai didi

python - 查询数据框的最快方法

转载 作者:太空狗 更新时间:2023-10-29 21:09:58 25 4
gpt4 key购买 nike

我想对 Pandas 数据帧(数百万行)的行进行聚合操作(求和),这些行由几个固定列(最多 10 列)的条件确定。这些列只有整数值。

我的问题是我必须进行此操作(查询 + 聚合)数千次(~100 000 次)。我认为对于聚合部分,没有太多需要优化的地方,因为它只是一个简单的总和。执行此任务的最有效方法是什么?有什么方法可以在我的条件列上构建“索引”以加快每个查询的速度吗?

最佳答案

我会尝试这种口味的东西:

假设您有以下数据框

N = 10000000
df = pd.DataFrame({
'A':np.random.binomial(1,0.5,N),
'B':np.random.binomial(2,0.5,N),
'nume1':np.random.uniform(0,1,N),
'nume2':np.random.normal(0,1,N)})

然后这样做

tmp = df[['A','B','nume1','nume2']].query('A > 0.5').groupby('B').sum().reset_index()[['B','nume1','nume2']]

是 SQL 等价物

select B, sum(nume1),sum(nume2)
from df
where A > 0.5
group by B

在我的中等(i7 四核,16GB 内存)机器上,这花费的时间比一秒(926 毫秒,使用 %timeit)少一点。

希望对您有所帮助。

关于python - 查询数据框的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20670648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com