Как можно извлечь эмодзи из текста?

Как удалить строки из датафрейма, которые не содержат эмоджи в колонке "emoji" и оставить только одно уникальное эмоджи в каждой строке?
Изображение к вопросу
  • 18 декабря 2023 г. 18:27
Ответы на вопрос 2
1. Чтобы извлечь эмодзи из текста, можно использовать регулярные выражения. Они позволяют искать и извлекать определенные паттерны в тексте. В данном случае, чтобы найти все эмодзи в строке, можно использовать следующее регулярное выражение:

```python
import re

text = "Привет! 😊 Как дела? 🌞"
emojis = re.findall(r'\X', text)
print(emojis)  # ['😊', '🌞']
```
Здесь регулярное выражение `r'\X'` ищет все последовательности символов, которые могут быть интерпретированы как эмодзи.

2. Чтобы удалить строки из датафрейма, которые не содержат эмоджи в колонке "emoji" и оставить только одно уникальное эмоджи в каждой строке, можно воспользоваться различными методами библиотеки pandas.

```python
import pandas as pd

# Создаем датафрейм с колонкой "emoji"
df = pd.DataFrame({"text": ["Привет! 😃 Как дела? 🌞", "Hello! How are you?"]})

# Извлекаем эмодзи из колонки "emoji" и проверяем наличие эмодзи в каждой строке
df["has_emoji"] = df["text"].str.contains(r'\X', regex=True)

# Удаляем строки, которые не содержат эмодзи
df = df[df["has_emoji"]]

# Оставляем только одно уникальное эмоджи в каждой строке (первое найденное)
df["emoji"] = df["text"].str.extract(r'(\X)')

# Удаляем колонку "has_emoji"
df = df.drop("has_emoji", axis=1)

print(df)
```
В результате получим датафрейм, в котором останутся только строки с эмодзи в колонке "emoji", каждая из которых будет содержать только одно уникальное эмоджи.
В целом тебе нет необходимости для "удаления" вытаскивать в отдельную колонку. Обычно из фрейма ничего не удаляют, его не изменяют, а извлекают из него подсеты которые отвечают твоим требованиям. Код придется картинкой опубликовать а то форматирование не поддерживает эмоджи. 
Похожие вопросы