我有一个包含1000万行的数据框
ID速度
AB 34
AB 45
BC 60
BC 32
BC 40
EF 90
假设我想创建第三列Acceleration,它在ID级别上采用0(减速度)或1(加速度)。
我总共有2000多个唯一ID。
我尝试过
for id in df['ID'].unique() :
df.loc[df['ID'] == id,'speed']
df['acceleration'] = df['speed'].apply(accl)
我的accl函数如下
def accl(a):
for i in range(1,len(a)) :
if a[i] > a[i-1]:
return 1
else:
return 0
运行循环后,出现内存问题。
如何有效解决此问题?有什么技巧吗?如果那是解决方案,如何使用Numpy数组解决呢?
请记住:我需要ID级别的数据,所以仅成功i + 1> df ['speed']上的i不能用于获取Acceleration列。