Python 通过从SQL DB导入的pd Dataframe子集改进性能循环

Python 通过从SQL DB导入的pd Dataframe子集改进性能循环,python,mysql,performance,loops,Python,Mysql,Performance,Loops,一般来说,我不熟悉python/编码。我花了一段时间才写出下面的代码(非常自豪),但现在我遇到了性能问题——不知道如何解决它们 我的任务如下: 每个产品都有一个交货时间和一个生产时间戳。生产时间可从交货前1天15:00到交货前30分钟。我想将每个交付小时的生产时间累计为15分钟,并在每个时间间隔内对生产的单元执行几个简单的操作 (并非所有功能都是内置的) -数量加权平均价格、总数量(总和)、标准差等 我的问题是: 该数据集由大约1100万个数据点组成。计算6个月的值花费了我24个多小时。我尝试循

一般来说,我不熟悉python/编码。我花了一段时间才写出下面的代码(非常自豪),但现在我遇到了性能问题——不知道如何解决它们

我的任务如下: 每个产品都有一个交货时间和一个生产时间戳。生产时间可从交货前1天15:00到交货前30分钟。我想将每个交付小时的生产时间累计为15分钟,并在每个时间间隔内对生产的单元执行几个简单的操作 (并非所有功能都是内置的) -数量加权平均价格、总数量(总和)、标准差等

我的问题是: 该数据集由大约1100万个数据点组成。计算6个月的值花费了我24个多小时。我尝试循环执行sql查询,只导入了15分钟的周期,但结果更糟

我的问题: 你认为有什么方法可以提高这个操作的性能吗? 这将是惊人的欢迎使用python!您的代码将是一个很好的起点:)

也就是说,随着数据集的增长,每次调用:

df['some_column']==some_variable
越来越贵了。如果您在处理2天的数据时表现良好,但在扩展到6个月后表现有所下降,那么这可能就是罪魁祸首

尝试通过在SQL查询的末尾添加
orderbystartoffelivery
对数据进行预排序。然后将数据帧拆分为数据帧列表,其中每个子帧仅包含循环体内部所需的15分钟增量记录

然后,您可以将该列表作为主循环进行迭代,而不是:

while (dt <= end_date):

while(dt)您的数据库管理系统的聚合功能肯定是一个更好的起点
df['some_column']==some_variable
while (dt <= end_date):