如果列值的序列发生变化,则拆分数据帧pandas

时间:2018-03-16 13:57:03

标签: python pandas

我有一个以下形式的数据集:

plane

其中每一行都是具有唯一值的标签,并且该唯一值在某些行之后重复,因此如果我这样做,则会有7个标签到7000行  df.loc [df ['标签'] == 0]  它将获取0标记行的所有值,但我想根据第一个标签集0提取值,如果有前10行标记为0,那么它只是带来它们而不是其他标签0在数据框中

1 个答案:

答案 0 :(得分:2)

我们可能需要一个新参数

df=df.assign(new=df.label.diff().ne(0).cumsum())
df[df.new==df.groupby('label').new.transform('min')]
Out[206]: 
   A  B  C  D  label  new
0  6  2  6  8      0    1
1  2  5  3  6      0    1
2  4  3  4  9      1    2
3  5  7  5  5      1    2

保存到列表

s=df[df.new==df.groupby('label').new.transform('min')];
l=[df1 for _, df1 in s.groupby('label')]