如何使用Python Pandas提取并统计CSV文件text列的emoji表情
问题修复说明
代码不生效的核心问题有两个,不需要额外下载其他依赖:
- 你的
split_count函数里写的是regex.findall(r'\X', 'text'),把传入参数text写成了字符串常量'text',每次都只处理四个英文字母,自然提取不到任何emoji - 新版emoji库的emoji匹配属性已从
UNICODE_EMOJI['en']调整为EMOJI_DATA,旧属性已被弃用,如果你安装的是2.x以上版本的emoji库,用旧属性会匹配不到内容,直接升级emoji到最新版即可:pip install --upgrade emoji
- 你的
要统计emoji出现次数,可以直接用Python内置的
collections.Counter实现,不需要额外写统计逻辑。
完整可运行代码
import pandas as pd import regex import emoji from collections import Counter # 读取本地CSV文件 df = pd.read_csv('/Users/hidden/testfile.csv') def extract_emojis(text): emoji_list = [] # 按字素簇拆分文本,适配多字符组合的特殊emoji graphemes = regex.findall(r'\X', str(text)) for g in graphemes: if any(char in emoji.EMOJI_DATA for char in g): emoji_list.append(g) return emoji_list # 提取所有text列的emoji合并到列表 total_emojis = [] for content in df['text']: total_emojis.extend(extract_emojis(content)) # 统计每个emoji的出现次数 count_result = Counter(total_emojis) # 按要求格式输出 for em, cnt in count_result.items(): print(f"{em} {cnt}")
运行效果
用你提供的示例数据运行后,输出结果如下:
🎺 2 🎶 1 ♦️ 3
内容的提问来源于stack exchange,提问作者jms
相关产品推荐
相关产品推荐

