Python 3.x 内存问题?如何有效地获得期望的输出?

Python 3.x 内存问题?如何有效地获得期望的输出?,python-3.x,pandas,numpy,Python 3.x,Pandas,Numpy,我有一个1000万行的数据框 ID速度 AB 34 AB 45 公元前60年 公元前32年 公元前40年 EF 90 假设我想创建第三列加速度,在ID级别上取0(减速)或1(加速度) 我总共有2000多个唯一ID 我试过这个 df['id']中id的。唯一() df.loc[df['ID']==ID,'speed'] df[‘加速度’]=df[‘速度’]。应用(accl) 我的accl功能如下 def accl(a): 对于范围(1,len(a))中的i: 如果a[i]>a[i-1]: 返回1

我有一个1000万行的数据框

ID速度

AB 34

AB 45

公元前60年

公元前32年

公元前40年

EF 90

假设我想创建第三列加速度,在ID级别上取0(减速)或1(加速度)

我总共有2000多个唯一ID

我试过这个

df['id']中id的
。唯一()
df.loc[df['ID']==ID,'speed']
df[‘加速度’]=df[‘速度’]。应用(accl)
我的accl功能如下

def accl(a):
对于范围(1,len(a))中的i:
如果a[i]>a[i-1]:
返回1
其他:
返回0
运行循环后,我遇到内存问题

如何有效地解决这个问题?有什么技巧吗?如果这是解决方案,如何使用Numpy数组解决这个问题


请记住:我需要ID级别的数据,因此在df['speed']上连续输入I+1>I将无法获得加速度列。

解释计算,而不仅仅是粘贴代码。解释计算,而不仅仅是粘贴代码。