【发布时间】:2020-03-23 04:30:12
【问题描述】:
当值从 0 变为 1 时,我想提取部分数据帧。
logic1:当值从0变为1时,开始保存数据,直到值再次变为0。(也指向1之前和1之后)
logic2:当值从0变为1时,开始保存数据,直到值再次变为0。(1之前和1之后不需要保存点)
仅当flag的第一次值从0变为1时才保存数据,之后如果再次从0变为1则不需要做任何事情
df=pd.DataFrame({'value':[3,4,7,8,11,1,15,20,15,16,87],'flag':[0,0,0,1,1,1,0,0,1,1,0]})
Desired output:
df_out_1=pd.DataFrame({'value':[7,8,11,1,15]})
Desired output:
df_out_2=pd.DataFrame({'value':[8,11,1]})
【问题讨论】:
-
你能详细说明一下逻辑吗?
-
那么这个变化的触发因素是什么?您可以使用
df[df['flag'] == 1]并将其保存到每个触发器中所需的变量中。 -
@dzakyputra 你说的是简单的过滤器,这样我会得到带有标志 1 的行,这不是我的要求
标签: python-3.x pandas numpy pandas-groupby