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)
如何使用内置的熊猫来实现这一点。以某种方式创建任何辅助列以促进上述任务。
您可以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)