文本
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“列中的信息创建新列,我需要输入:
df["Emoji Count"] = df["Text].....
我可以创建一个计算表情符号数量的函数,但我无法将其应用于我的数据帧:
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)
发布于 2020-07-05 03:34:43
只需这样做:
df["Emoji Count"] = df.Text.apply(split_count)
或
df["Emoji Count"] = df['Text'].apply(split_count)
这将对每个单元格应用您的函数,并将结果分配回Emoji Count列。
发布于 2020-07-05 04:10:15
手动指定保存表情符号的数据帧,然后简化split_count(info)
函数并将其应用于数据帧,以创建新的"Emoji Count"
列:
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)
正在返回:
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
https://stackoverflow.com/questions/62733426
复制相似问题