根据 Pandas 中的列值选择行间隔

Selecting a row interval according to a Column value in Pandas

大家好,我有一个看起来像这样的数据集

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,则切片到最后。

提前感谢您的帮助

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