У меня есть Dataframe со следующими столбцами («Пользователь», «ProdCode», «Sentiment», «Review»), где «ProdCode» содержит коды продуктов, а «Sentiment» содержит значения 0, 1, 2., а «Отзыв» содержит текстовую рецензию строки.См. Пример ниже:
User ProdCode Sentiment Review
User1 X1 0 [string]
User2 X1 0 [string]
User3 X1 2 [string]
User4 X2 1 [string]
User5 X2 2 [string]
User6 X2 1 [string]
User7 X3 2 [string]
User8 X3 2 [string]
Я пытаюсь создать DataFrame, который группирует «ProdCode» и показывает 3 соотношения:
1) Количество строк, где Sentiment = 0 / Total NumОтзывов для кода продукта
2) Количество строк, где настроение = 1 / общее количество отзывов для кода продукта
3) Количество строк, где настроение = 2 / общее количество отзывовдля кода продукта
Выглядит примерно так:
ProdCode SentimentRatio0 SentimentRatio1 SentimentRatio2
X1 .67 0 .33
X2 0 .33 .67
X3 0 0 1.00
Я пробовал много неудачных созданий новых полей в Dataframe, код ниже.
DFF['sent0_ratio'] = [(count(DFF[sentiment])) if x == "0" else "0" for x in DFF.sentiment]
ИЛИ
DFF['sent0_ratio'] = sum(DFF['sentiment' if x == 0 for x in DFF.sentiment].groupby(DFF['ProdCode']).mean(), 2)
Ни один из них не работает должным образом.Я даже не думаю, что я близко.