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

Python统计pandas列每行唯一单词数并新增对应列

逐行统计歌词唯一单词数量实现方法

你不需要写显式循环遍历行,pandas的apply方法可以直接逐行执行统计逻辑,核心思路是对单行歌词做「转小写→拆分为单词列表→转集合自动去重→计算集合长度」的操作,直接生成目标列即可。

基础实现代码

# 新增unique_count列,存储每行歌词的唯一单词计数
unique_wordsDF['unique_count'] = unique_wordsDF['clean_lyrics1'].apply(
    lambda lyric_line: len(set(lyric_line.lower().split()))
)

高性能向量化写法(适合大数据量)

如果你的数据集量级在十万行以上,可以用pandas原生字符串向量化操作替换普通apply,运行速度更快,计算结果和基础写法完全一致:

unique_wordsDF['unique_count'] = unique_wordsDF['clean_lyrics1'].str.lower().str.split().apply(set).apply(len)

逻辑说明

  • 你之前的代码是把所有行的单词都更新到同一个全局集合里,最终得到的是整个数据集全量的唯一单词池,不是逐行的统计结果,因此不需要提前初始化全局的unique_words集合。
  • 如果你的clean_lyrics1列在之前的清洗步骤中已经完成了小写转换,可以去掉代码里的.lower()步骤进一步提升运行效率。
  • 如果后续需要叠加其他统计规则(比如排除停用词、过滤特定长度的单词),直接在处理逻辑中补充对应规则即可。

结果验证

执行完上述代码后,可以用以下命令对照校验数值是否正确:

print(unique_wordsDF[['clean_lyrics1', 'unique_count']].tail())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 03:33:31