内存问题?如何有效地获得所需的输出?

时间:2019-07-13 21:07:10

标签: python-3.x pandas numpy

我有一个包含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列。

0 个答案:

没有答案