我想添加非零'ttr'的不同子集的值并分别获取'hour'的值。
结果应类似于:hour:7,ttr:15seconds,hour:7,ttr:25seconds,hour:8,ttr:15seconds等。
困难的部分是当遇到零秒时如何添加“ ttr”列的不同子集。
有人知道如何解决这个问题吗?谢谢!
答案 0 :(得分:2)
IIUC对您的df
进行过滤,然后使用index
将继续时间分为一组
s=df[df.hour!=0]
s=s.reset_index()
s.groupby([s.hour,s['index'].diff().ne(1).cumsum()]).ttr.sum()
Out[389]:
hour index
7 1 00:00:15
2 00:00:25
Name: ttr, dtype: timedelta64[ns]
数据输入
df=pd.DataFrame({'hour':[0,0,7,0,7,7,7],'ttr':[0,0,'00:00:15',0,'00:00:05','00:00:16','00:00:04']})
df.ttr=pd.to_timedelta(df.ttr)