我目前正在进行情感分析,并且有一个包含两列的表格。
1.日期和时间
2.得分(正面得分为+1,负面得分为-1)
现在我要计算以下内容:
-平均情感得分,基于日期(每日)的汇总和df中的值
-每天在单独的列中计算正负数量(即1500 pos和800 neg)
-每天另一列中的阳性和阴性比率(例如,阳性/(阳性+阴性)
我能够计算出每天的平均情绪得分,但使用其他计算方法,我会遇到一些问题。
twitter_data_avg_sentiments = twitter_data.groupby('date_only').agg({'score':np.mean}).reset_index()
该计算工作正常。 对于pos / neg和它们的计数之间的比率,我有一些问题,因为我不知道如何每天将这些值分组。每次尝试都会引发一些错误。
基本计算如下:
twitter_data_avg_sentiments['pos']=(twitter_data.score>0).sum()
twitter_data_avg_sentiments['neg']=(twitter_data.score<0).sum()
twitter_data_avg_sentiments['pos_rat']=(twitter_data.score>0).mean()
twitter_data_avg_sentiments['neg_rat']=(twitter_data.score<0).mean()
这是我的结果:
date_only score pos neg pos_rat neg_rat
2019-04-07 0.000000 3343 1670 0.666866 0.333134
2019-04-08 0.314286 3343 1670 0.666866 0.333134
如您所见,“得分”计算得很好。但是列pos,neg,pos_rat和neg_rat只是整个数据的值(即,我有5013、3343个pos和1670个neg,样本)。所需的输出(仅作为示例):
date_only score pos neg pos_rat neg_rat
2019-04-07 0.000000 20 20 0.5 0.5
2019-04-08 0.314286 150 61 0.710 0.289
有人可以帮助我如何将groupby函数集成到我的计算中吗?