@realsandking

Как вычислить количество записей?

Записи с характеристиками для строки идут через ; пример: "old;white". Мне нужно посчитать количество упоминаний каждой характеристики.
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Прочитать все записи, разбить строку по разделителю, скормить всё в collections.Counter.
С pandas не работал, вот пример для списков:
from collections import Counter
from itertools import chain
data = [
  (1, 'old;white'),
  (2, 'old;green'),
  (3, 'old;brown'),
  (4, 'new;green'),
]
# генерирует последовательность ['old', 'white'], ['old', 'green'], ...
split_generator = (item[1].split(';') for item in data) 
# генерирует последовательность 'old', 'white', 'old', 'green', ...
property_generator = chain.from_iterable(split_generator)
# исправляет регистр и удаляет пробелы - можно убрать, если не надо
property_fixed_generator = (item.strip().lower() for item in property_generator)
# поглощает данные из генераторов и считает вхождения
count = Counter(property_fixed_generator)
print(count)  # Counter({'old': 3, 'green': 2, 'white': 1, 'brown': 1, 'new': 1})
Ответ написан
Комментировать
@angrypotato666
import pandas as pd

# Создаем пример данных
data = {'skills': ['Python;Pandas;Numpy', 'Python;SQL;Pandas', 'R;SQL;Excel', 'R;Python;Excel', 'Java;SQL;Excel']}
df = pd.DataFrame(data)

# Разделяем столбец с навыками на отдельные строки
df['skills'] = df['skills'].str.split(';')

# Преобразуем списки в отдельные строки
df = df.explode('skills')

# Считаем количество упоминаний каждого навыка
skill_counts = df['skills'].value_counts()

# Выводим результат
print(skill_counts)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы