Pandas中的Groupby和累积计数

时间:2016-07-18 13:48:14

标签: python python-2.7 pandas

我想按两列分组并获得累积计数。我尝试在组中查找相关代码,无法找到它,但根据我编码的内容得到了一些提示,但最终出现了错误。这可以解决吗?

ID  ABC   XYZ
 1    A  .512 
 2    A  .123
 3    B  .999 
 4    B  .999
 5    B  .999 
 6    C  .456 
 7    C  .456
 8    C  .888
 9    d  .888
10    d  .888

输出应如下所示[ABC或XYZ都应该增加新值计数器]。

ID  ABC   XYZ  GID
 1    A  .123    1
 2    A  .512    2
 3    B  .999    3
 4    B  .999    3
 5    B  .999    3
 6    C  .456    4
 7    C  .456    4
 8    C  .888    5
 9    d  .888    6
10    d  .888    6

代码如下

DF=DF.sort(['ABC','XYZ'] ,ascending = [1,0]) 
DF['GID'] = DF.groupby('ABC','XYZ').cumcount()

但最终会出现错误:

  

ValueError:对象类型

没有名为XYZ的轴

1 个答案:

答案 0 :(得分:2)

我得到了这样的预期结果。

c1 = df.ABC != DF.ABC.shift()
c2 = df.XYZ != DF.XYZ.shift()
DF['GID'] = (c1 | c2).cumsum()
DF

enter image description here