我如何在熊猫中执行解释的操作?

这是我的 df

idx = pd.date_range('2020-01-01',periods=26,freq='D')
vals = [0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,1,1]
pd.DataFrame(vals,index=idx)

我需要知道的是值在哪些时期变为 1。所以这个特殊情况在接下来的时期变为 1(以及我想看到的输出)

2020-01-04:2020-01-07
2020-01-14:2020-01-18
2020-01-21:2020-01-21
2020-01-25:2020-01-26

谢谢

回答

我们可以groupindex上的顺序块数据帧的1's和aggreagte使用firstlast计算周期,其中值转/住宿1

m = df[0].eq(1)
m[m].index.to_series().groupby((~m).cumsum()).agg(['first', 'last'])

        first       last
0                       
3  2020-01-04 2020-01-07
9  2020-01-14 2020-01-18
11 2020-01-21 2020-01-21
14 2020-01-25 2020-01-26


以上是我如何在熊猫中执行解释的操作?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>