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

基于Pandas生成日期区间内的日期计数DataFrame

Pandas生成连续日期序列并统计原日期出现次数

前提准备

首先要确保原DataFrame的date列是datetime类型,否则无法正确生成连续日期范围:

import pandas as pd

# 构造原DataFrame
df = pd.DataFrame({
    'date': ['2022-02-01', '2022-02-03', '2022-02-01', '2022-02-04', '2022-02-27'],
    'column_1': ['val', 'val1', 'val', 'val2', 'val2'],
    'column_2': ['val2', 'val', 'val3', 'val', 'val4']
})

# 转换date列为datetime类型
df['date'] = pd.to_datetime(df['date'])

实现步骤

  1. 生成完整日期范围
    从原数据的最小日期到最大日期,生成所有连续日期:
full_dates = pd.date_range(start=df['date'].min(), end=df['date'].max())
  1. 统计原日期出现次数
    用value_counts统计每个日期在原DataFrame中的出现次数:
date_counter = df['date'].value_counts().rename('counter')
  1. 合并并填充缺失值
    将完整日期序列转成DataFrame,和统计结果做左连接,把未出现的日期计数填充为0:
result = pd.DataFrame({'date': full_dates})
result = result.merge(date_counter, left_on='date', right_index=True, how='left')
# 填充缺失值为0,并转为整数类型
result['counter'] = result['counter'].fillna(0).astype(int)

最终输出

运行后result的结果完全符合需求:

datecounter
2022-02-012
2022-02-020
2022-02-031
2022-02-041
......
2022-02-260
2022-02-271

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:45:45