如何在pandas组的第二列上运行逻辑?

时间:2016-09-13 14:31:43

标签: python python-2.7 pandas numpy

我有一个像这样分组的大型数据框:

dates = frame['DATE'].unique()
test2 = frame.groupby(['NAME','DATE']).sum()

#NAME   DATE       VALUE
 AACT   20160602   186615450
        20160603   186615450
        20160604   186615450
        20160605   186615450
        20160606   186615450
        20160607   186615450
        20160608   186615450
        20160609   186615450
        201606010  186615450

 BAML   20160602   21900000
        20160603   21900000
        20160604   21900000
        20160605   21900000
        20160606   21900000
        20160607   21900000
        20160608   21900000
        20160609   21900000
        201606010  21900000
        201606011  21900000
        201606012  21900000
        201606013  21900000
        201606014  21900000

我在这里尝试做的是通过名称键获取每个组,并通过逻辑检查迭代每个组的“DATE”列:

test2['STATUS'] = test2['DATE'].isin(dates).map({True:'Update',False:'Delete'})

因此,基本上'ACCT'项目将在20160610之后删除任何内容,因为没有值。

上面的公式不起作用并给我一个'KeyError',我假设因为我没有正确引用该组。如何在每个组项上运行此逻辑?

对于每个名称组,所需的输出应该是这样的:

#NAME   DATE       VALUE      STATUS
 AACT   20160602   186615450  Update
        20160603   186615450  Update
        20160604   186615450  Update
        20160605   186615450  Update
        20160606   186615450  Update
        20160607   186615450  Update
        20160608   186615450  Update
        20160609   186615450  Update
        201606010  186615450  Update
        20160611              Delete

0 个答案:

没有答案