使用pandas的Python数据帧40GB,计算统计数据时不使用for循环

使用pandas的Python数据帧40GB,计算统计数据时不使用for循环,pandas,dataframe,iteration,Pandas,Dataframe,Iteration,我有一个相当大的数据框,可以容纳40GB的数据。假设我有三列: ID,速度,速度限制。有许多重复ID。这些数据是每秒的。 在我的计算结束时,我想在一个新的数据框中,为每个ID,总行驶公里数和超速行驶的公里数 我知道如何使用循环来实现这一点,但我知道迭代行是一个问题,因为它非常慢,而且我有大约1.2亿行。 我可以使用什么工具来实现这一点 对于超速持续时间,您只需使用time\u overspeed=(df['speed']>df['speed\u limit'])。sum()。由于每行为1秒,因此

我有一个相当大的数据框,可以容纳40GB的数据。假设我有三列: ID,速度,速度限制。有许多重复ID。这些数据是每秒的。 在我的计算结束时,我想在一个新的数据框中,为每个ID,总行驶公里数和超速行驶的公里数

我知道如何使用循环来实现这一点,但我知道迭代行是一个问题,因为它非常慢,而且我有大约1.2亿行。
我可以使用什么工具来实现这一点

对于超速持续时间,您只需使用
time\u overspeed=(df['speed']>df['speed\u limit'])。sum()
。由于每行为1秒,因此结果以秒为单位


对于距离计算,我们有
distance=speed*duration
。再一次,每行为1秒,然后:
distance=df['speed'].sum()/3600
(假设速度单位为km/h,距离单位为km)

通过这种方式,我并没有得到每个ID的解决方案,而是作为所有ID的聚合。我想要的是,对于数据帧中的每个ID,他超过的公里数。