我正在尝试将熊猫中的连续值合并以创建新的输出数据框,并可能需要一些帮助。
输入:
depth type
0 50 0
1 100 1
2 150 1
3 200 1
4 250 0
5 300 0
6 350 0
7 400 1
8 450 1
9 500 0
输出:
start_depth stop_depth type
0 100 200 1
1 400 450 1
答案 0 :(得分:3)
按照温家宝对agg min/max
的建议:
c=(df.type != df.type.shift()).cumsum().values
ndf = df.groupby([c, 'type']).depth.agg(['min','max']).reset_index(level=1)
type start end
1 0 50 50
2 1 100 200
3 0 250 350
4 1 400 450
5 0 500 500
仅获得type==1
,只需选择
ndf[ndf.type==1]
type start end
2 1 100 200
4 1 400 450
答案 1 :(得分:2)
这是我的解决方案,usig agg
df.loc[df.type==1,:].groupby(df.type.eq(0).cumsum()).agg({'depth':['min','max'],'type':'first'})
Out[42]:
type depth
first min max
type
1 1 100 200
4 1 400 450