Как выполнить группировку и счет преобразования с условием в pandas - PullRequest
0 голосов
/ 11 июля 2020

У меня есть следующий фрейм данных:

# Import pandas library 
import pandas as pd
import numpy as np

# data
data = [['tom', 10,2,'c',100,'x'], ['tom',16 ,3,'a',100,'x'], ['tom', 22,2,'a',100,'x'],
        ['matt', 10,1,'c',100,'x'], ['matt', 15,5,'b',100,'x'], ['matt', 14,1,'b',100,'x']]

# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Attempts','Score','Category','Rating','Other'])
df['AttemptsbyRating'] = df.groupby(by=['Rating'])['Attempts'].transform('count')
df

введите описание изображения здесь

Затем я пытаюсь создать дополнительные столбцы - один показывает количество попыток, сгруппированных по рейтингу (как показано выше, работает), а затем пытается сделать другой, где я хочу подсчитать баллы больше 1 . Я пробовал:

df['scoregreaterthan1'] = df[df.groupby(by=['Rating'])['Score'].transform('count')>1]

И я получаю ValueError: Wrong number of items passed 7, placement implies 1

В основном в таблице выше я надеюсь, что он покажет 4 для каждого столбца (4 балла больше 1 )

Любая помощь будет принята с благодарностью! Спасибо

1 Ответ

1 голос
/ 11 июля 2020

Надо сделать

df['scoregreaterthan1'] = df['Score'].gt(1).groupby(df['Rating']).transform('sum')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...