根据Python中数据框的条件计算时间间隔

尼西拉

我有一个时序数据帧df,如下所示:

                        id      timestamp                data   Date         sig      events1   Start   Peak   gradient 
timestamp                                   
2020-01-15 06:12:49.213 40250   2020-01-15 06:12:49.213  20.0   2020-01-15  -1.0      0.0       NaN     1.0    0.000148
2020-01-15 06:12:49.313 40251   2020-01-15 06:12:49.313  19.5   2020-01-15   1.0      1.0       0.0     0.0    0.000294
2020-01-15 08:05:10.083 40256   2020-01-15 08:05:10.083  20.0   2020-01-15   1.0      0.0       1.0     0.0    0.000339
2020-01-15 08:05:10.183 40257   2020-01-15 08:05:10.183  20.5   2020-01-15   1.0      0.0       0.0     0.0    0.000334
2020-01-15 09:01:50.993 40310   2020-01-15 09:01:50.993  21.0   2020-01-15   1.0      0.0       0.0     0.0    0.000000
2020-01-15 09:01:51.093 40311   2020-01-15 09:01:51.093  21.5   2020-01-15   1.0      0.0       0.0     0.0   -0.008618

我想为每一Start==1找到直到下一Start==1行的时间(以秒为单位),即从当前data到达到的持续时间(data>=40如果data碰巧达到该时间)40如果data从未达到40,则输出0有什么好方法吗?

生成了我自己的数据:

np.random.seed(0)
rng = pd.date_range('2015-02-25', periods=15, freq='T')
df = pd.DataFrame({ 'Timestamp': rng, 'data': [1,2,3,4,5,40,47,8,9,10,30,12,13,40,20], 'id':[0,1,0,0,0,0,0,1,0,0,0,0,1,0,0] }) 
df

使用ID基于ID群集进行分组

df['group']  = df['id'].cumsum().reindex()
df

选择每个组的开始到另一个数据框,df2然后将“时间戳”重命名为“日期”

df2=df[df.id.eq(1) & df.id.shift(-1).eq(0)]
df2.drop(columns=['data','id'], inplace=True)
df2.rename(columns={'Timestamp':'Date'}, inplace=True)

合并新的数据框df2df和裹胁追溯到日期时间

result = pd.merge(df, df2, on='group', how='outer')
result['Date']=pd.to_datetime(result['Date'])
result

遮盖所有实例 data==40

n =df['data']==40

应用掩码,计算之间的时间间隔start=1时,data==40如果它确实。谨慎选择,Date因为我们已经完成了

result['x']=result.loc[n,'Timestamp']-result.loc[n,'Date']
result.drop(columns=['Date'],inplace=True)
result

输出量

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据Python中的其他条件计算相应的时间间隔

如何计算熊猫数据框中满足布尔条件的时间间隔的数量?

在python / pandas数据框中垂直计算日期之间的时间间隔

根据条件熊猫数据框python计算cumprod

根据多个条件调整熊猫数据框中的日期时间

根据时间间隔从数组中获取数据

根据条件计算选定的数据框列

根据时间戳记间隔创建csv文件的数据框

如何根据时间间隔分割熊猫数据框

数据框中的条件计算

如何根据python中的条件从数据框中删除行?

如何根据python中的条件从数据框中删除行?

Python:根据条件计算时间戳差异

根据python数据框中的条件对行值求和

根据数据框Python中的列条件划分行值

根据条件替换合并数据框中的 NaN --(Python,Pandas)

Python中不同大小的数据框的条件计算

根据数据框中的条件过滤数据

从数据框中的列日期中减去时间间隔 Pandas Python

根据数据框中的约束计算列

根据数据框中的位置计算元素

根据pyspark中的时间间隔对数据进行分组

根据对象的值删除数据框中的行间隔

计算熊猫数据帧中时间间隔内的行数

如何在Python大熊猫数据框中有条件地计算日期间隔?

如何从数据框中绘制行的特定时间间隔?

为事件记录分配时间间隔 - 在 Pandas 数据框中

如何根据熊猫数据框中的某些条件计算比率公式

在Pandas数据框中更快地根据特定条件计算滚动事件