首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汇总Emoji长度

汇总Emoji长度
EN

Stack Overflow用户
提问于 2020-12-08 11:10:39
回答 1查看 47关注 0票数 0

我有表情符号列表,我想做一个新的变量,将每行列表中的所有表情符号的长度加起来,然后将每行的列表编码为'utf-16be‘,并将其分成2。

你可以使用下面的代码重现我的代码。

代码语言:javascript
复制
import pandas as pd
import emoji
import re

e_1 = emoji.emojize(":thinking_face:")
e_2 = emoji.emojize(":see-no-evil_monkey:")
e_3 = emoji.emojize(":relieved_face:")
e_4 = emoji.emojize(":two_hearts:")
e_5 = emoji.emojize(":two_women_holding_hands:")
e_6 = emoji.emojize(":bikini:")
e_7 = emoji.emojize(":woman_student_medium-dark_skin_tone:")

df = pd.DataFrame(
    [
        [f"{e_1}{e_2} me así se {e_3} ds {e_4}{e_5}{e_6} hello {e_7}"],
        [f"{e_1}{e_2} me así se {e_3} ds {e_4}{e_5}{e_6} hello"],
        [f"{e_1}{e_2} me así se {e_3} ds"],
        [f"{e_1}{e_2} me así"],
    ],
    columns=["Text"],
)

df['emoji_list'] = df["Text"].apply(lambda row: ''.join(c for c in row if c in emoji.UNICODE_EMOJI))

df["emoji_len"] = sum(df["emoji_list"].apply(lambda x: x.encode('utf-16be')) // 2)

df["emoji_list"]中,我在下面的每一行中都有这些

0?????????

1个??????

2个???

3个??

我当前的df‘’emoji_len‘代码不工作。出现的错误是“+:'int‘and’bytes‘不支持的操作数类型”。有人能帮我改正我的代码吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-08 11:24:25

一些错误..。使用decode(),你需要计算len()//2

代码语言:javascript
复制
byt = 'emoji_xxx'.encode('utf-16be')
df = pd.DataFrame(dict(emoji_list = [byt for n in range(3)]))

df["emoji_len"] = df["emoji_list"].apply(lambda x: len(x.decode('utf-16be')))//2
print(df)

                                         emoji_list  emoji_len
0  b'\x00e\x00m\x00o\x00j\x00i\x00_\x00x\x00x\x00x'         12
1  b'\x00e\x00m\x00o\x00j\x00i\x00_\x00x\x00x\x00x'         12
2  b'\x00e\x00m\x00o\x00j\x00i\x00_\x00x\x00x\x00x'         12
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65192547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档