大家好我有一个看起来像这样的数据集
transferid value type
5545 100 X
5123 40 A
5566 35 A
5675 700 X
5235 1100 A
5616 350 A
5772 170 X
它有索引用于任何目的,我想做的是在行中切片数据集,生成像这样的新数据集
df1=
transferid value type
5545 100 X
5123 40 A
5566 35 A
5675 700 X
df2=
transferid value type
5675 700 X
5235 1100 A
5616 350 A
5772 170 X
包括这样的值。是否有可能在单个切片上执行此操作?我尝试收集索引并使用df.loc来设置切片间隔,但我没有用这种方法取得任何成功。数据集可以从任何类型的传输开始,但我需要在它之间进行切片,并且每次找到传输类型X时,如果它在末尾找不到其他类型X,则切片直到结束。
感谢您提前提供任何帮助
答案 0 :(得分:1)
IIUC:
i = np.where(df.type == "X")[0]
pd.concat({j: df.iloc[x:y] for j, (x, y) in enumerate(zip(i, i[1:] + 1))})
transferid value type
0 0 5545 100 X
1 5123 40 A
2 5566 35 A
3 5675 700 X
1 3 5675 700 X
4 5235 1100 A
5 5616 350 A
6 5772 170 X