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

基于DataFrame相同单词分组:实现求和与频次统计的方法

Pandas分组聚合实现求和与频次统计

你遇到的问题是因为groupby(注意你拼写错成了grouby)返回的是分组容器对象,不是最终的聚合结果,需要配合聚合函数才能得到目标DataFrame,另外你的分组列名也写错了(原DataFrame列是words不是word)。

直接用以下代码就能实现需求:

# 按words分组,同时完成求和与频次统计
df2 = df.groupby('words').agg(
    likes=('likes', 'sum'),          # 对likes列求和
    num_comments=('num_comments', 'sum'),  # 对num_comments列求和
    frequency=('words', 'size')      # 统计每组行数(即单词出现频次)
).reset_index()

代码说明:

  • groupby('words'):按words列的不同值分组
  • agg():批量指定各列的聚合规则,这里分别对数值列求和,对分组列用size()统计出现次数
  • reset_index():将作为索引的words列还原为普通列,结构和你给出的目标df2完全一致

如果分步实现也可以:

# 第一步:分组求和
sum_result = df.groupby('words')[['likes', 'num_comments']].sum()
# 第二步:统计每个单词的出现频次
freq_result = df['words'].value_counts().rename('frequency')
# 第三步:合并结果并重置索引
df2 = sum_result.join(freq_result).reset_index()

两种方法都会得到你需要的结果:

words  likes  num_comments  frequency
0    bird    939          7303          4
1   lucky    628          6155          2
2     pie    961         11115          2
3    song    419          2035          2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:45:37