【发布时间】:2021-04-16 18:00:21
【问题描述】:
我想计算不同事件发生的平均周期持续时间。
我得到的数据是每个事件都有一个 id,并在由其 id 标识的单行中进行跟踪。每次发生事件时,都会保存发生日期。
df_starting_point = pd.DataFrame(
[{'id': 3, '0': pd.to_datetime('2020-11-23T00:00:00.000000000') , '1': np.nan, '2' : np.nan},
{'id': 123, '0': pd.to_datetime('2020-03-22T00:00:00.000000000') , '1': np.nan, '2' : np.nan},
{'id': 13215, '0': pd.to_datetime('2020-03-23T00:00:00.000000000') , '1': pd.to_datetime('2020-03-28T00:00:00.000000000'), '2' : pd.to_datetime('2020-04-03T00:00:00.000000000')},
{'id': 123, '0': pd.to_datetime('2020-03-22T00:00:00.000000000') , '1': pd.to_datetime('2020-03-23T00:00:00.000000000'), '2' : np.nan}
])
现在我想以周为单位计算每个相邻日期之间的距离,并计算跟踪的每个事件/id 发生的平均周期持续时间。
我要计算平均持续时间的数据框如下所示:
df_end_point = pd.DataFrame(
[{'id': 3, '0': np.nan , '1': np.nan},
{'id': 123, '0': np.nan , '1': np.nan},
{'id': 13215, '0': pd.to_datetime('2020-03-23T00:00:00.000000000') - pd.to_datetime('2020-03-28T00:00:00.000000000'), '1': pd.to_datetime('2020-03-28T00:00:00.000000000') - pd.to_datetime('2020-04-03T00:00:00.000000000')},
{'id': 123, '0': pd.to_datetime('2020-03-22T00:00:00.000000000') - pd.to_datetime('2020-03-23T00:00:00.000000000'), '1': np.nan}
])
有什么方法可以优雅地做到这一点?如果我不需要对此进行编程,我将不胜感激:)
谢谢你,我的朋友们!
【问题讨论】:
-
您也可以发布预期的数据框吗?
-
感谢您的提问。我相应地更新了它:)
标签: python pandas date timedelta