Как подсчитать повторяющиеся записи в столбце?

У меня есть такой фрейм данных:

Ценить 0 0 0 1 1 0 0

Я хотел бы создать еще один столбец, чтобы он подсчитывал количество повторений значения в пакете:

Ценить Частота 0 3 0 3 0 3 1 2 1 2 0 1

Группировка здесь не будет работать. Как бы вы это сделали?

df['freq'] = df.groupby('Value')['Value'].transform('size')
Quang Hoang 19.04.2024 22:01

@QuangHoang это неправильно

Onyambu 19.04.2024 22:04

Ваш вывод не совпадает с вводом, не так ли? В конце входных данных есть 2 нуля. В любом случае, должно быть df.groupby(df['Value'].ne(df['Value'].shift()).cumsum()).tra‌​nsform('size'), я думаю

ouroboros1 19.04.2024 22:05

попробуй df.groupby([df['Value'].ne(df['Value'].shift()).cumsum()]).t‌​ransform('count')

Onyambu 19.04.2024 22:06
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот один из подходов:

import pandas as pd

data = {'Value': {0: 0, 1: 0, 2: 0, 3: 1, 4: 1, 5: 0}} # deleting the last `0`
df = pd.DataFrame(data)

df['Freq'] = (
    df.groupby(df['Value'].ne(df['Value'].shift()).cumsum())['Value']
    .transform('size')
)

Выход

   Value  Freq
0      0     3
1      0     3
2      0     3
3      1     2
4      1     2
5      0     1

Другие вопросы по теме