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

Python如何统计文本中指定代码出现次数并按日期分别绘制可视化图表

实现方案

前置依赖

确保已安装pandas和matplotlib两个基础数据处理和可视化库。

完整实现代码

import pandas as pd
import matplotlib.pyplot as plt

# 1. 数据预处理
# 转换时间列为datetime格式,提取日期维度(按天统计)
discussion['dt'] = pd.to_datetime(discussion['dt']).dt.date
# 为每个股票代码新增标记列,记录单条讨论是否提及对应代码
for tag in top:
    discussion[f'is_mention_{tag}'] = discussion['text'].apply(lambda txt: 1 if tag in txt else 0)

# 2. 拆分独立子DataFrame + 生成独立可视化
# 自定义全局图表大小
plt.rcParams['figure.figsize'] = (12, 6)

for tag in top:
    # 拆分当前代码对应的子DataFrame
    sub_df = discussion[discussion[f'is_mention_{tag}'] == 1].reset_index(drop=True)
    # 可选:将子DataFrame保存为本地csv
    # sub_df.to_csv(f'{tag}_相关讨论.csv', index=False)
    
    # 按日期统计当前代码的每日提及次数
    daily_cnt = sub_df.groupby('dt').size().reset_index(name='提及次数')
    
    # 生成独立图表
    plt.figure()
    plt.plot(daily_cnt['dt'], daily_cnt['提及次数'], marker='o', color='#2E86AB')
    plt.title(f'{tag} 每日讨论提及次数统计')
    plt.xlabel('日期')
    plt.ylabel('提及次数')
    plt.xticks(rotation=45)
    plt.tight_layout()
    # 可选:将图表保存到本地
    # plt.savefig(f'{tag}_提及次数统计.png', dpi=300)
    plt.show()

补充说明

如果需要按小时/周等其他时间维度统计,仅需修改时间处理逻辑即可,比如按周统计的话将discussion['dt'] = pd.to_datetime(discussion['dt']).dt.date替换为discussion['dt'] = pd.to_datetime(discussion['dt']).dt.to_period('W')。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 13:15:02