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

Python pandas中按日期、股票代码聚合行计算情感得分的实现方法

实现步骤

整个操作逻辑和你在Excel中用数据透视表、SUMIFS公式做统计的逻辑完全一致,不需要写复杂的自定义规则,按以下两步操作即可:

  1. 将文本类的情感标注转换为可计算的数值
    因为规则是positive计+1、negative计-1,直接通过字典映射把文本转成对应数字就行,不需要写嵌套判断:
    # 生成临时计算列:positive对应1,negative对应-1
    df["sentiment_score_temp"] = df["sentiment"].map({"positive": 1, "negative": -1})
    
  2. 按指定维度分组汇总
    按照date、stock_ticker两个维度对临时数值列求和,直接就能得到组内累计的情感分,最后重命名列、保留目标字段即可:
    # 分组聚合,as_index=False 保证两个维度字段是普通列,而非pandas特有索引结构
    final_df = df.groupby(
        by=["date", "stock_ticker"],
        as_index=False
    )["sentiment_score_temp"].sum().rename(
        columns={"sentiment_score_temp": "sentiment_score"}
    )[["date", "stock_ticker", "sentiment_score"]]
    

操作对照说明(适配你熟悉的Excel逻辑)

  • groupby(by=["date", "stock_ticker"]) 完全对应Excel数据透视表中将date、stock_ticker拖入“行”区域作为分组维度的操作
  • 对临时数值列做sum()求和,对应透视表中将临时数值列拖入“值”区域,选择“求和”汇总方式的操作
  • as_index=False 参数相当于跳过Excel透视表默认的分层行标签结构,直接输出普通二维表格,和你平时在Excel里看到的普通单元格表格结构一致,后续做筛选、排序都不会有额外障碍
  • 整个计算过程自动适配“同组内positive加1、negative减1”的累计规则,不需要额外写分支判断,遇到同组正负情感混合的情况,求和结果就是你需要的最终得分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 00:45:04