我有以下Pandas 数据框:
df = pd.DataFrame({
'A': [1,1,1,1,2,2,2,1,1,3,3,3],
'B': [0,0,1,1,0,0,0,1,1,0,0,0],
});
df.index.names = ['Index']
df
A B
Index
0 1 0
1 1 0
2 1 1
3 1 1
4 2 0
5 2 0
6 2 0
7 1 1
8 1 1
9 3 0
10 3 0
11 3 0
我可以将此数据帧分组为常量‘A’块,如下所示:
df = df.groupby(df['A'].diff().ne(0).cumsum()).apply(lambda x: x)
df.index.names = ['Block', 'Index']
df
A B
Block Index
1 0 1 0
1 1 0
2 1 1
3 1 1
2 4 2 0
5 2 0
6 2 0
3 7 1 1
8 1 1
4 9 3 0
10 3 0
11 3 0
我如何将该数据帧分组为常量‘A’AND常量‘B’的块?我想要的结果是:
A B
Block Index
1 0 1 0
1 1 0
2 2 1 1
3 1 1
3 4 2 0
5 2 0
6 2 0
4 7 1 1
8 1 1
5 9 3 0
10 3 0
11 3 0