按组对点进行指数拟合

问题描述

我有一个这种形式的大熊猫数据框

Group    X      Y
 1       0.5    8
 1       0.7    9
 2       0.1    2

这个数据框延续了许多行,其中包含许多由数字表示的不同组。对于每个组,我希望获取所有 (x,y) 点,并为其拟合指数曲线。

我考虑过遍历每个组,过滤数据框,将 x 和 y 拉入列表,并使用 numpy 来拟合每个组的点。但是我担心由于数据帧的大小,这会很慢。有没有更有效的方法来做到这一点?

提前致谢。

解决方法

你会喜欢这个函数的,它为我节省了大量时间,pandas df groupby 函数和 groupby.apply 链接上有很好的例子。

如果数据框太大而无法放入内存,可以查看Dask

在一天结束时,如果您想在组上运行回归,如果它太慢,您将不得不按组分开,您可以使用 groupby.to_frame 为每个组创建不同的数据框,然后多进程每组或使用 dask 分配配件。

,

您可以按照其他人的建议使用 groupbygroupby.apply。如果您担心性能,请尝试使用您的代码 BodoBodo Community Edition 允许您在最多 4 个内核上免费使用它。它可以通过顺序和并行优化自动加速 Pandas 代码。