使用函数行循环id

时间:2017-11-09 19:42:35

标签: python pandas numpy

我有以下面板数据(比示例大得多)

            id     clae6  anio  trimestre      salario  empleo     cpa letra  
             1  475230.0  2007          1  1372.440000     3.0  3150.0     G   
             1  475230.0  2007          2  1511.554445     3.0  3150.0     G   
             1  475230.0  2007          3  1477.590000     3.0  3150.0     G   
             1  475230.0  2007          4  2058.210000     3.0  3150.0     G   
             1  475230.0  2008          1  1467.678889     2.0  3150.0     G  
             2  475230.0  2007          1  1372.440000     3.0  3150.0     G   
             2  475230.0  2007          2  1511.554445     3.0  3150.0     G   
             2  475230.0  2007          3  1477.590000     3.0  3150.0     G   
             2  475230.0  2007          4  2058.210000     3.0  3150.0     G   
             2  475230.0  2008          1  1467.678889     2.0  3150.0     G

我想通过id执行某个功能:到目前为止,我的选项是使用groupby和apply

def entr(x):
if ((x['posicion'] ==1) & (x['fecha'] >= 228)):
    return 1
elif ((x['fecha_dif'] > 8) & (x['fecha'] >= 228)):
    return 1
else:
    return 0

df['entrada'] = df.groupby(['id']).apply(entr,axis=1) 

这个函数里面的内容与这种情况无关,关键在于我认为循环每个id或每行更快,并且创建了我创建的函数,但我不知道如何,如果有人可以帮助我非常感谢。

我认为分组和申请非常慢(我有一个2200万条记录的数据库)

非常感谢!抱歉我的英语(不是我的母语,我正在练习:))

0 个答案:

没有答案