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

Как подсчитать количество упоминаний каждой характеристики из записей, где характеристики для строки отделены друг от друга символом ";"? Например: "old;white".
  • 19 апреля 2024 г. 11:50
Ответы на вопрос 2
Для определения количества записей вам нужно просто посчитать количество строк или элементов в вашем списке или базе данных.

Для подсчета количества упоминаний каждой характеристики из записей, где характеристики отделены символом ";" в каждой строке, вы можете применить следующий алгоритм:

1. Создайте пустой словарь, где ключами будут характеристики, а значениями - количество упоминаний этих характеристик.

2. Проходите по каждой записи и разбивайте строку на отдельные характеристики по символу ";".

3. Для каждой характеристики проверяйте, есть ли она уже в словаре. Если есть, увеличивайте соответствующее значение на 1. Если нет, добавляйте новую запись в словарь с начальным значением 1.

4. После того, как вы обработаете все записи, у вас будет подсчитано количество упоминаний каждой характеристики.

Например, если у вас есть список записей:

["old;white", "young;black", "old;green", "old;white"]

После обработки этого списка вам будет иметь словарь:

{
 "old": 3,
 "white": 2,
 "young": 1,
 "black": 1,
 "green": 1
}
Прочитать все записи, разбить строку по разделителю, скормить всё в 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})
Похожие вопросы