我有一个 Pandas df,其中一列具有以下值。
Data
0 A
1 A
2 B
3 A
4 A
5 A
6 B
7 A
8 A
9 B
我想尝试对这些值进行分组,对于每次遇到值 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
如何使用内置的 Pandas 来实现这一点。以某种方式创建任何辅助列以促进上述任务。
最佳答案
你可以试试 cumsum
比较后是否系列equals
B
然后 shift
将 B 包括在组中的 1 个位置:
df['Data'].eq('B').shift(fill_value=False).cumsum().add(1)
0 1
1 1
2 1
3 2
4 2
5 2
6 2
7 3
8 3
9 3
关于python - 根据条件对 Pandas 系列进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61305853/