通过按列分组平均值和一个热编码列的列表(Python、pandas)创建表
我正在处理推文,我想按主题和社区报告平均情绪得分 这就是我的数据框的外观,其中每一行都是一个文档(tweet): 我想创建一个数据框,在每个单元格中包含一个平均情感值,如下所示:通过按列分组平均值和一个热编码列的列表(Python、pandas)创建表,python,pandas,Python,Pandas,我正在处理推文,我想按主题和社区报告平均情绪得分 这就是我的数据框的外观,其中每一行都是一个文档(tweet): 我想创建一个数据框,在每个单元格中包含一个平均情感值,如下所示: community_id topic 1 topic 2 topic 3 ... topic k 1233 0.1 -0.8 0.5 ... 0.9 9845 -0.3 0.2 0.4
community_id topic 1 topic 2 topic 3 ... topic k
1233 0.1 -0.8 0.5 ... 0.9
9845 -0.3 0.2 0.4 ... 0.1
... ... ... ... ... ...
你有什么想法吗?谢谢 IIUC,首先你想通过主题传播情感,然后通过
community\u id
:
(df.filter(like='topic')
.mul(df.sentiment, axis=0)
.groupby(df.community_id)
.mean()
)
谢谢这看起来像是一次按一个主题过滤。如何为所有主题生成这些列?将其放入for循环并附加每个附加主题列?不,不是。它会处理名称包含
主题的所有列。您还可以将第一行(df.filter(…)
)替换为df[主题列表]
谢谢!这是我最后使用的代码:topics\u list=['topic\u 1','topic\u 2','topic\u 3']df[topics\u list].mul(df[topic],axis=0).groupby(df[community)d]).mean()
(df.filter(like='topic')
.mul(df.sentiment, axis=0)
.groupby(df.community_id)
.mean()
)