bounty还有6天到期。回答此问题可获得+50声望奖励。Xaume希望引起更多的注意这个问题。
我有一个 Dataframe 结构如下:
group maybe_start maybe_end
0 ABC False False
1 ABC True False
2 ABC False False
3 ABC False False
4 ABC True False
5 ABC False False
6 ABC False True
7 ABC False False
8 DEF False False
9 DEF False False
10 DEF True False
11 DEF False False
12 DEF False True
13 DEF False False
14 DEF False False
15 DEF False True
16 DEF True False
17 DEF False False
18 DEF False True
字符串
我需要创建一个单独的列,比如group2
,它将记录由开始和结束时刻定义的组。因此,group2
中的每个组都应该开始,只要在maybe_start
列中前一个maybe_end==True
之后有第一个True值,并在开始后第一次出现maybe_end==True
时结束。换句话说,我们在group2
中的maybe_start==True
(在本例中为第1行)开始一个新值,group2
的每一行都将获得相同的值,直到出现maybe_end==True
(在本例中为第6行)。所有这些都需要在groupby中完成,groupby基于group
列创建组。因此,预期输出应如下所示:
group maybe_start maybe_end group2
0 ABC False False NaN
1 ABC True False 1.0
2 ABC False False 1.0
3 ABC False False 1.0
4 ABC True False 1.0
5 ABC False False 1.0
6 ABC False True 1.0
7 ABC False False NaN
0 DEF False False NaN
1 DEF False False NaN
2 DEF True False 1.0
3 DEF False False 1.0
4 DEF False True 1.0
5 DEF False False NaN
6 DEF False False NaN
7 DEF False True NaN
8 DEF True False 2.0
9 DEF False False 2.0
10 DEF False True 2.0
型
我如何在Pandas中以矢量化的方式实现这一点?
1条答案
按热度按时间zf2sa74q1#
您可以尝试:
字符串
图纸:
型