基于Pandas在两个日期间生成行:追踪待呼叫线索数量
追踪任意时刻处于「线索创建」与「发起呼叫」间的线索数量解决方案
需求
需要追踪每日任意时刻处于「线索创建」与「发起呼叫」两个步骤之间的线索数量,不同线索的这两个步骤时间间隔差异较大。
示例数据集
| ID | Created DateTime | Call DateTime | Time Gap |
|---|---|---|---|
| 123 | 11:58 | 12:02 | 4 |
| 124 | 11:58 | 12:00 | 2 |
实现方案
通过生成每个线索在「创建」到「呼叫」之间的每分钟时间记录,再按时间分组统计即可得到任意时刻的待呼叫线索数。以下是Python实现代码:
import pandas as pd def generate_rows(df, x): sample = {'ID': df.iloc[x, 0]} # 生成从创建时间开始的每分钟时间序列,周期为时间间隔数 sample['Date'] = pd.date_range(df.iloc[x, 1], freq='Min', periods=df.iloc[x, 3], name='Date') return pd.DataFrame(sample) # 假设df是你的数据集,num_rows为数据集行数 num_rows = len(df) expanded_df = pd.concat([generate_rows(df, x) for x in range(num_rows)])
执行后输出
运行上述代码后,会得到展开后的时间记录数据集:
| ID | Date |
|---|---|
| 123 | 11:58 |
| 123 | 11:59 |
| 123 | 12:00 |
| 123 | 12:01 |
| 124 | 11:58 |
| 124 | 11:59 |
后续统计
对展开后的数据集按Date分组,统计每组的ID数量,即可得到每分钟的待呼叫线索数:
daily_tracking = expanded_df.groupby('Date')['ID'].nunique().reset_index(name='待呼叫线索数')
内容的提问来源于stack exchange,提问作者Joey Bordon
相关产品推荐
相关产品推荐

