2

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

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

感谢您提前提供任何帮助

4

1 回答 1

1

国际大学联盟:

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
于 2018-06-15T19:53:13.387 回答