【发布时间】:2021-06-25 23:25:09
【问题描述】:
我正在尝试从句子中提取表情符号并将它们添加到新列中,但是当我这样做时,新列只包含任何内容,其中表情符号仍在句子中。
作为参考,我的数据集看起来像这样 - 但包含超过 70,000 个与此类似的句子:
| Sentence |
|---|
| You look ???? good |
| Love you ❤️ |
| I am so happy today ???? |
到目前为止,我已经尝试过this方法:
import pandas as pd
import emoji
df['emojis'] = df['Sentence'].apply(lambda row: ''.join(c for c in row if c in emoji.UNICODE_EMOJI))
df
还有this方法:
def extract_emojis(text):
return ''.join(c for c in text if c in emoji.UNICODE_EMOJI)
df['emojis'] = df['Sentence'].apply(extract_emojis)
df
但是,当我尝试它们时,我的最终输出似乎是这样的:
| Sentence | Emojis |
|---|---|
| You look ???? good | |
| Love you ❤️ | |
| I am so happy today ???? |
因此,我希望我的输出如下所示:
| Sentence | Emojis |
|---|---|
| You look good | ???? |
| Love you | ❤️ |
| I am so happy today | ???? |
除此之外,我还尝试了this 方法,这正是我想要做的:
import pandas as pd
import emoji as emj
def extract_emoji(df):
df["emoji"] = ""
for index, row in df.iterrows():
for emoji in EMOJIS:
if emoji in row["Sentence"]:
row["Sentence"] = row["Sentence"].replace(emoji, "")
row["emoji"] += emoji
extract_emoji(df)
print(df.to_string())
虽然,使用上面的方法,代码似乎没有完全执行,而且我认为它无法处理数据集中的这么多行;因此,我有超过 70,000 个句子,需要表情符号提取。
如您所见,我快到了,但还没有完全到达。
这三种方法对我来说并不完全奏效,我需要一些额外的帮助。
总之,我只想从每个句子中提取表情符号并将它们添加到一个新列中 - 如果可能的话。
非常感谢。
【问题讨论】:
标签: python pandas dataframe emoji