У меня есть такой фрейм данных:
Я хотел бы создать еще один столбец, чтобы он подсчитывал количество повторений значения в пакете:
Группировка здесь не будет работать. Как бы вы это сделали?
@QuangHoang это неправильно
Ваш вывод не совпадает с вводом, не так ли? В конце входных данных есть 2 нуля. В любом случае, должно быть df.groupby(df['Value'].ne(df['Value'].shift()).cumsum()).transform('size')
, я думаю
попробуй df.groupby([df['Value'].ne(df['Value'].shift()).cumsum()]).transform('count')
Вот один из подходов:
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
df['freq'] = df.groupby('Value')['Value'].transform('size')