根据 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
大家好,我有一个看起来像这样的数据集
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