首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算每个数据帧行中的表情符号数量

计算每个数据帧行中的表情符号数量
EN

Stack Overflow用户
提问于 2020-07-05 03:16:21
回答 2查看 412关注 0票数 3

文本

0??me asíse?ds???你好??‍?

1??me asíse?ds???你好

2??me asíse?ds

3??me así

我想在上面的dataframe (df)中添加一个列,称为“Emoji Count”,基于每行中的表情符号数量。

例如,第一行的计数为7,因为该行中有7个表情符号。

我知道,要基于"Text“列中的信息创建新列,我需要输入:

代码语言:javascript
运行
复制
df["Emoji Count"] = df["Text].....

我可以创建一个计算表情符号数量的函数,但我无法将其应用于我的数据帧:

代码语言:javascript
运行
复制
def split_count(info):

    emoji_list = []
    data = regex.findall(r'\X', info)
    for word in data:
        if any(char in emoji.UNICODE_EMOJI for char in word):
            emoji_list.append(word)

    return len(emoji_list)
EN

回答 2

Stack Overflow用户

发布于 2020-07-05 03:34:43

只需这样做:

代码语言:javascript
运行
复制
df["Emoji Count"] = df.Text.apply(split_count)

代码语言:javascript
运行
复制
df["Emoji Count"] = df['Text'].apply(split_count)

这将对每个单元格应用您的函数,并将结果分配回Emoji Count列。

票数 2
EN

Stack Overflow用户

发布于 2020-07-05 04:10:15

手动指定保存表情符号的数据帧,然后简化split_count(info)函数并将其应用于数据帧,以创建新的"Emoji Count"列:

代码语言: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"],
)


def split_count(info):
    return len([c for c in info if c in emoji.UNICODE_EMOJI])


df["Emoji Count"] = df["Text"].apply(split_count)
print(df)

正在返回:

代码语言:javascript
运行
复制
                                 Text       Emoji Count
0  ?? me así se ? ds ??? hello ??‍?              7
1  ?? me así se ? ds ??? hello                 6
2  ?? me así se ? ds                             3
3  ?? me así                                     2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62733426

复制
相关文章

相似问题

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