假设我正在测量汽车在单轴上前进的速度,每10分钟测量一次。
我在DataFrame中有一列称为delta_x
,其中包含最近10分钟内汽车在轴上移动了多少,值仅是整数。
现在,让我们说我想聚合我的数据,并且每个小时仅移动一次,但是我想尽可能地优化代码,因为我的数据集非常大,最有效的方法是什么?
df.head(9)
date time delta_x
0 01/01/2018 00:00 9
1 01/01/2018 00:10 9
2 01/01/2018 00:20 9
3 01/01/2018 00:30 9
4 01/01/2018 00:40 11
5 01/01/2018 00:50 12
6 01/01/2018 01:00 10
7 01/01/2018 01:10 10
8 01/01/2018 01:20 10
目前,我的解决方案是执行以下操作
for file in os.listdir('temp'):
if(file.endswith('.txt'):
df = pd.read_csv(''.join(["./temp/",file]), header=None, delim_whitespace=True)
df.columns = ['date', 'time', 'delta_x']
df['hour'] = [(datetime.strptime(x, "%H:%M")).hour for x in df['time'].values]
df = df.groupby(['date','hour']).agg({'delta_x': 'sum'})
哪个输出正确:
date hour delta_x
01/01/2018 0 59
但我想知道,是否有更好,更快和更有效的方法,也许使用NumPy?
您可以尝试使用以下用于加快熊猫操作速度的软件包
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句