如何解决如何用熊猫计算日期序列的平均周期持续时间?
我想计算不同事件发生的平均周期持续时间。
我得到了数据,其中每个事件都有一个 id,并在由其 id 标识的一行中进行跟踪。每次事件发生时,都会保存发生日期。
$tpm = Get-TpmEndorsementKeyInfo -HashAlgorithm sha256
$hexPub = $tpm.PublicKey.Format($true).Replace(' ','')
$pubBytes = New-Object byte[] -ArgumentList ($hexPub.Length / 2)
for ($i = 0; $i -lt $hexPub.Length; $i += 2) { $pubBytes[$i/2] = [System.Convert]::ToByte($hexPub.Substring($i,2),16) }
$pubString = [System.Convert]::ToBase64String($pubBytes)
现在我想以周为单位计算每个相邻日期之间的距离,并计算每个跟踪事件/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'),{'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')},'1': pd.to_datetime('2020-03-23T00:00:00.000000000'),'2' : np.nan}
])
有没有办法优雅地做到这一点?如果我不需要编程,我将不胜感激:)
谢谢你,我的朋友们!
解决方法
根据我的理解,您可以在轴 = 1,周期 -1 上进行移位并减去,创建相同规格的掩码:
df_end_point = df_starting_point.set_index("id")
df_end_point= (df_end_point.sub(df_end_point.shift(-1,axis=1))
.dropna(how='all',axis=1).reset_index())
print(df_end_point)
id 0 1
0 3 NaT NaT
1 123 NaT NaT
2 13215 -5 days -6 days
3 123 -1 days NaT
早期版本:
df_end_point = df_starting_point.set_index("id")
df_end_point = (df_end_point.diff(-1,axis=1)
.mask(df_end_point.isna().shift(-1,axis=1).fillna(False))
.dropna(how='all',axis=1).reset_index())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。