我有这种类型的数据帧,我想将其拆分为单独的数据帧:
A B C Mark
3 5 6 T
4 5 2 T
3 4 5 B
5 6 7 B
3 4 5 T
2 5 2 T
例如,上表应分为三个 pandas 数据帧。第一个数据帧将带有标记“T”的两行作为一个数据帧,第二个数据帧将带有标记“B”的接下来两行作为一个数据帧,第三个数据帧将带有标记“T”的最后两行作为一个数据帧。
df1
A B C Mark
3 5 6 T
4 5 2 T
df2
A B C Mark
3 4 5 B
5 6 7 B
df3
A B C Mark
3 4 5 T
2 5 2 T
最佳答案
创建一个字典如下:
frames = {}
for i, grp in df.groupby(df.Mark.ne(df.Mark.shift()).cumsum()):
frames.update([('df_'+str(i),grp)])
{'df_1': A B C Mark
0 3 5 6 T
1 4 5 2 T, 'df_2': A B C Mark
2 3 4 5 B
3 5 6 7 B, 'df_3': A B C Mark
4 3 4 5 T
5 2 5 2 T}
然后您可以通过将所有 dfs 打印为进行测试:
print(frames['df_1'])
A B C Mark
0 3 5 6 T
1 4 5 2 T
关于Python pandas 数据帧分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54689555/