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

如何从含推文的DataFrame中统计话题标签并生成新DataFrame

统计DataFrame中提取的话题标签出现次数

看起来你已经搞定了话题标签的提取,接下来要统计每个标签的出现次数对吧?这里有两个简单可靠的方法,帮你把统计结果存入新的DataFrame:

首先先确认你的现有代码是没问题的(我把它完整写出来方便参考):

import pandas as pd
import re

tweets = pd.Series(['This is a tweet example #help #thankyou', 'Second tweet example #help', 'Third tweet example #help #stackoverflow'])
tweets_df = pd.DataFrame({'Tweets': tweets})
# 提取话题标签到新列
tweets_df['hashtags'] = tweets_df['Tweets'].apply(lambda twt : re.findall(r"#(\w+)", twt))

方法1:用explode + value_counts(最直观推荐)

pandas的explode方法可以把包含列表的列拆成每行一个元素,之后直接用value_counts统计次数,再转成DataFrame就好:

# 拆分hashtags列的列表,每行保留一个标签
exploded_tags = tweets_df['hashtags'].explode()

# 统计每个标签的出现次数,转为DataFrame并重置索引
hashtag_counts = exploded_tags.value_counts().reset_index()

# 重命名列名让结果更清晰
hashtag_counts.columns = ['hashtag', 'count']

执行后hashtag_counts的结果如下:

hashtagcount
help3
thankyou1
stackoverflow1

方法2:用itertools.chain兼容旧版pandas

如果你的pandas版本低于0.25(explode是0.25版本新增的),可以用itertools.chain来展开所有标签列表,再统计:

from itertools import chain

# 把所有标签从列表中提取出来,变成一维列表
all_tags = list(chain.from_iterable(tweets_df['hashtags']))

# 统计次数并转为结构化的DataFrame
hashtag_counts = pd.Series(all_tags).value_counts().reset_index()
hashtag_counts.columns = ['hashtag', 'count']

这个方法和方法1的结果完全一致,适合环境受限的情况。

两种方法都能快速得到你需要的统计DataFrame,后续你可以直接用这个结果做分析或者可视化~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:15:53