You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计同日内value日志早于event日志的数量及10分钟内关联事件数

解决方案

假设你使用Pandas处理数据,以下是针对两个需求的具体实现步骤:

预处理数据

首先确保时间戳列是可处理的datetime类型,并拆分出独立的value记录和event记录:

import pandas as pd

# 转换timestamp为datetime类型(若未转换)
df['timestamp'] = pd.to_datetime(df['timestamp'])

# 拆分含有效value的记录,添加日期列用于按天匹配
value_records = df.dropna(subset=['value']).copy()
value_records['record_date'] = value_records['timestamp'].dt.date

# 拆分含有效event的记录,添加日期列
event_records = df.dropna(subset=['event']).copy()
event_records['record_date'] = event_records['timestamp'].dt.date

需求1:统计同日内value记录早于当日event的情况数

通过用户ID+日期关联value与event记录,再比较时间戳:

# 按用户和日期合并同一天的value与event记录
daily_merged = pd.merge(
    value_records,
    event_records,
    on=['id', 'record_date'],
    suffixes=('_value', '_event')
)

# 筛选并统计value时间早于event的记录数量
count_value_early = daily_merged[daily_merged['timestamp_value'] < daily_merged['timestamp_event']].shape[0]
print(f"同日内value记录早于event的情况数:{count_value_early}")

需求2:统计与对应value间隔10分钟内的event数量

计算每条event与当日对应value的时间差绝对值,筛选符合时间间隔的记录并计数:

# 计算时间差(单位:分钟)
daily_merged['time_diff_min'] = (
    daily_merged['timestamp_event'] - daily_merged['timestamp_value']
).dt.total_seconds().abs() / 60

# 统计间隔≤10分钟的event数量
count_10min_event = daily_merged[daily_merged['time_diff_min'] <= 10].shape[0]
print(f"与对应value间隔10分钟内的event数量:{count_10min_event}")

说明

  • 由于每个用户每日仅一条value记录,合并后每条event会和当日唯一的value关联,保证统计准确性。
  • 用户当日仅存在value或仅存在event的记录,会被merge自动忽略,符合“对应value”的统计前提。

内容的提问来源于stack exchange,提问作者prof32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 20:55:12