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

如何用Pandas按作者分组获取其评论过的唯一Subreddit列表

嘿,我来帮你搞定这个Pandas数据处理的需求!

按作者分组提取唯一Subreddit列表的正确方法

你的需求很明确:把存储Reddit评论的DataFrame,转换成每行对应一个作者、包含其所有评论过的唯一Subreddit列表的新DataFrame。这里给你一套可靠的实现方案:

核心代码示例

假设你的原始DataFrame名为reddit_comments,包含author(作者)和subreddit(子版块)这两个关键列,直接运行下面的代码就能得到结果:

import pandas as pd

# 按作者分组,聚合得到每个作者的唯一subreddit列表
author_subreddit_df = reddit_comments.groupby('author')['subreddit']\
    .agg(lambda x: list(x.unique()))\
    .reset_index()

# 可选:给列名起更清晰的名字
author_subreddit_df.columns = ['author', 'unique_subreddits']

代码逻辑拆解

我给你拆解下这段代码为什么能解决问题:

  • groupby('author'):把整个数据集按作者分组,每个组就是该作者的所有评论记录。
  • .agg(lambda x: list(x.unique())):对每个分组里的subreddit列,先用unique()去掉重复的子版块名称,再用list()把去重后的结果转换成列表格式。
  • .reset_index():把分组时自动生成的author索引转换成普通列,这样最终得到的就是标准的DataFrame结构——每行对应一个作者,第二列是他评论过的唯一子版块列表。

常见失败原因排查

如果之前的尝试没成功,大概率是踩了这些坑:

  • 没加unique():直接把所有subreddit转换成列表,导致里面有大量重复项。
  • 误用nunique():这个函数返回的是唯一值的数量,而不是具体的列表内容。
  • 忘记reset_index():分组后得到的是Series,而不是你需要的DataFrame结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:02:41