我使用来自过去的kaggle挑战的数据,这些数据基于多个商店的面板数据和跨越2.5年的时间段.每个观察包括给定商店日期的客户数量.对于每个商店日期,我的目标是计算过去60天内访问该商店的平均客户数量.
下面的代码完全符合我的需要.但是,它会永远持续下去 - 处理c.800k行需要一个晚上.我正在寻找一种更快捷地实现同一目标的聪明方法.
我已经在初始数据集中包含了5个相关变量的观察结果:商店ID(商店),日期和客户数量("客户").
注意:
谢谢.
样本数据:
pd.DataFrame({
'Store': {0: 1, 1: 1, 2: 1, 3: 1, 4: 1},
'Customers': {0: 668, 1: 578, 2: 619, 3: 635, 4: 785},
'Date': {
0: pd.Timestamp('2013-01-02 00:00:00'),
1: pd.Timestamp('2013-01-03 00:00:00'),
2: pd.Timestamp('2013-01-04 00:00:00'),
3: pd.Timestamp('2013-01-05 00:00:00'),
4: pd.Timestamp('2013-01-07 00:00:00')
}
})
Run Code Online (Sandbox Code Playgroud)
代码有效但速度极慢:
import pandas as pd
import numpy as np
data = pd.read_csv("Rossman - no of cust/dataset.csv")
data.Date = pd.to_datetime(data.Date)
data.Customers = data.Customers.astype(int) …Run Code Online (Sandbox Code Playgroud)