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

Pandas新手求助:无需预处理CSV直接生成日期频率统计图

直接用Pandas+Matplotlib从单日期列CSV生成频率图表

完全不用手动预处理,用Pandas就能完成频次统计,再结合Matplotlib生成图表,步骤如下:

  • 读取原始CSV文件:由于你的CSV只有一列且无表头,读取时需指定header=None并自定义列名:

    import pandas as pd
    import matplotlib.pyplot as plt
    
    # 读取无表头的单日期列CSV
    df = pd.read_csv('your_file.csv', header=None, names=['date'])
    
  • 转换为日期类型:将读取到的字符串转为Pandas日期格式,确保后续统计和排序的准确性:

    df['date'] = pd.to_datetime(df['date'])
    
  • 统计日期出现频次:用value_counts()直接统计每个日期的出现次数,再用sort_index()按日期顺序排序(避免频次高的日期乱序排列):

    date_frequency = df['date'].value_counts().sort_index()
    
  • 生成频率图表:可以用Pandas内置绘图方法(底层基于Matplotlib)快速生成,也可以用Matplotlib手动定制:

    # Pandas快速绘图
    date_frequency.plot(kind='bar', figsize=(8, 5), xlabel='日期', ylabel='出现次数', title='日期出现频率变化')
    plt.show()
    
    # Matplotlib手动定制绘图
    plt.figure(figsize=(8, 5))
    plt.bar(date_frequency.index.strftime('%Y-%m-%d'), date_frequency.values)
    plt.xlabel('日期')
    plt.ylabel('出现次数')
    plt.title('日期出现频率变化')
    plt.xticks(rotation=45)
    plt.tight_layout()
    plt.show()
    

补充说明

如果你的日期是连续时间序列(需要补全缺失日期并统计为0),可以用resample方法:

# 设置date列为索引,按天重采样并统计数量,缺失日期补0
df.set_index('date', inplace=True)
date_frequency = df.resample('D').size().fillna(0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:35:26