首页 > 解决方案 > 错误:计算数据框中的出现次数时无需重复

问题描述

我尝试计算我的数据框中每个表情符号(在表情符号库中)的出现次数。我的做法:

emoji_cnt = [[] for i in range(len(list(emoji.UNICODE_EMOJI.keys())))]

j = 0
for key, value in emoji.UNICODE_EMOJI.items():
    emoji_cnt[j].append(key)
    j = j+1

for k in emoji_cnt: 
    s = df["Message"].str.count(k[0]).sum()
    k.append(s)

确实有效。我试图打印出数字(在循环内)并且它有效。但是一些程序如何停止,我得到以下错误:

  File "C:\Users\USER\anaconda3\lib\sre_parse.py", line 668, in _parse
    raise source.error("nothing to repeat",

error: nothing to repeat

我在 Anaconda 和 Python 3.8 上使用 Spyder。

非常感谢你们 :)

来自维也纳的亲切问候!

标签: pythonpandasdataframespyderpython-3.8

解决方案


于是找到了办法。我不得不将 thge 模块用于正则表达式。所以:

import re
.
.
.
emoji_cnt = [[] for i in range(len(list(emoji.UNICODE_EMOJI.keys())))]

j = 0
for key, value in emoji.UNICODE_EMOJI.items():
    emoji_cnt[j].append(key)
    j = j+1

for k in emoji_cnt: 
    s = df["Message"].str.count(re.escape(k[0])).sum()
    k.append(s)

re.escape(k[0])会将 k[0] 中的表情符号更改为正则表达式。

:)


推荐阅读