Python 如果列值的顺序更改,则拆分数据帧
我有一个以下形式的数据集:Python 如果列值的顺序更改,则拆分数据帧,python,pandas,Python,Pandas,我有一个以下形式的数据集: A B C D label 6 2 6 8 0 2 5 3 6 0 4 3 4 9 1 5 7 5 5 1 6 4 5 8 0 其中每一行都是一个具有唯一值的标签,并且该唯一值在一些行之后重复,因此如果我这样做,则有7个标签到7000行 df.loc[df['label']==0] 它将获取标记为0的行的所有值,但我想根据第一个标记集0提取值,如果
A B C D label
6 2 6 8 0
2 5 3 6 0
4 3 4 9 1
5 7 5 5 1
6 4 5 8 0
其中每一行都是一个具有唯一值的标签,并且该唯一值在一些行之后重复,因此如果我这样做,则有7个标签到7000行
df.loc[df['label']==0]
它将获取标记为0的行的所有值,但我想根据第一个标记集0提取值,如果前10行标记为0,那么它只会在数据框中将它们而不是其他标记为0的行我们可能需要一个新参数
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')]
我也需要像这样保存这个格式,1-0,这是1个文件号,0是一个标签,但我有7个标签和7000行,标签随机出现,但以5或10行的形式,我需要分别保存它们,希望你理解,你能写下“for”块中的内容吗,我的意思是完整地写下这些语句,和s=…中的分号。。。。。是错的吗?它在l=[s.groupby('label')中的u,df1]中有一个错误,表示表达式需要下划线for@MuhammadHassan我更改了…
[df1 for uu,df1 in s.groupby('label')]
,请检查更新@Wen我需要以这种样式保存文件,如“new label”.csv,是否有任何方法可以这样做,只需选择新的列值,标签中就有相应的值,