我有一个dataframe,看起来像这样:
import pandas as pd
pd.DataFrame({'id': [1,1,1,1,2,2,2,2],
'time': [1,2,3,4,1,2,5,6],
'is': [0,1,0,0,0,1,0,0]})
id time is
0 1 1 0
1 1 2 1
2 1 3 0
3 1 4 0
4 2 1 0
5 2 2 1
6 2 5 0
7 2 6 0
即sorted
乘以id
和time
对于每个id
,只选择至少满足以下两个条件之一的行:
is==1
- 在这两行之间的行
is==1
和time
之后的行不具有间隙。
生成的嵌套框架应该如下所示:
pd.DataFrame({'id': [1,1,2],
'time': [2,3,2],
'is': [1,0,1]})
我怎么能这么做
2条答案
按热度按时间zbdgwd5y1#
可以使用
groupby.shift
:输出量:
nxagd54h2#
验证码
产出: