根据条件对熊猫系列进行分组

Ind*_*ngh 4 python grouping dataframe pandas

我有一个 Pandas df,其中一列包含以下值。

      Data
0      A
1      A 
2      B
3      A
4      A 
5      A
6      B
7      A
8      A
9      B
Run Code Online (Sandbox Code Playgroud)

我想尝试对这些值进行分组,对于每次遇到值 B,我希望将组值更改如下

      Data  Group
0      A      1
1      A      1
2      B      1
3      A      2
4      A      2
5      A      2
6      B      2
7      A      3
8      A      3
9      B      3
Run Code Online (Sandbox Code Playgroud)

如何使用内置的熊猫来实现这一点。以某种方式创建任何辅助列以促进上述任务。

ank*_*_91 6

您可以cumsum在比较系列后尝试equals B,然后shift将 B 包含在组中的 1 个位置:

df['Data'].eq('B').shift(fill_value=False).cumsum().add(1)
Run Code Online (Sandbox Code Playgroud)
0    1
1    1
2    1
3    2
4    2
5    2
6    2
7    3
8    3
9    3
Run Code Online (Sandbox Code Playgroud)