模式识别和子集化

时间:2018-03-13 02:01:12

标签: python pandas dataframe

我有一个包含3列的数据框。如果列值再次达到1,我想将子集分配到数据帧的子集,并将其标记为1观察并继续直到文件末尾。

数据帧:

colA   colB  colC    
a12     3      1    
c45     4      0    
d36     4      0    
e97     5      0
h65     3      1
k67     3      1
l54     5      0

所以我应该能够将3个观察值作为[a12,c45,d36.e97],[h65],[k67,l54]进行子集化并将其传递给另一个只有列名称的数据帧,并将此处的值标记为1,将0设置为ML算法。

我试图拉动模式但收到错误:

  

系列的真值是模棱两可的。使用a.empty,a.bool(),a.item(),a.any()或a.all()

1 个答案:

答案 0 :(得分:1)

您可以将cumsum与colC一起使用,然后将该结果用作组密钥

df.colC.cumsum()
Out[282]: 
0    1
1    1
2    1
3    1
4    2
5    3
6    3
Name: colC, dtype: int64
df.groupby(df.colC.cumsum()).colA.apply(list)
Out[284]: 
colC
1    [a12, c45, d36, e97]
2                   [h65]
3              [k67, l54]
Name: colA, dtype: object