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

如何统计各截止日期对应的案件数并生成指定结构的DataFrame

处理截止日期案件统计的Pandas方案

步骤1:统一日期格式

先把D1-D4列转为标准日期类型,空值自动转为NaT(Pandas缺失日期标记):

import pandas as pd

# 转换日期列格式
df[['D1', 'D2', 'D3', 'D4']] = df[['D1', 'D2', 'D3', 'D4']].apply(pd.to_datetime, errors='coerce')

步骤2:整理为长格式数据

把多列日期合并成单列,保留案件ID并过滤空值:

# 转长格式并剔除空日期
date_long = df.melt(
    id_vars='Case ID',
    value_vars=['D1', 'D2', 'D3', 'D4'],
    value_name='Deadline'
).dropna(subset=['Deadline'])

步骤3:统计日期对应案件数

按日期分组统计案件数量:

  • 若需确保同一案件在单日期仅计一次,用nunique
  • 若需统计所有日期出现次数(含同一案件多次出现),替换为count
# 统计每个日期的案件数量
date_counts = date_long.groupby('Deadline')['Case ID'].nunique().reset_index(name='Case Count')

步骤4:生成完整日期索引并补全

生成从最小到最大日期的完整序列,合并统计结果并填充缺失日期的计数为0:

# 获取完整日期范围
min_date = date_long['Deadline'].min()
max_date = date_long['Deadline'].max()
full_date_range = pd.date_range(start=min_date, end=max_date, freq='D')

# 创建最终结果DataFrame
result_df = pd.DataFrame(index=full_date_range)
result_df = result_df.join(date_counts.set_index('Deadline')).fillna(0)
result_df['Case Count'] = result_df['Case Count'].astype(int)

最终的result_df就是以完整日期序列为索引、每行对应日期案件数量的目标DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:30:47