当我们在熊猫中进行groupby时进行多次计算

时间:2020-11-04 09:28:59

标签: python pandas dataframe

据目前为止我所了解的,每次我们对一个熊猫的数据帧执行groupby时,我们只能进行一次计算,例如列的平均值。

我们如何只对一只熊猫中的groupby进行多次计算(就像在SQL中一样)。

例如数据框:

import pandas as pd
times = [21 , 34, 37, 40, 55, 65, 67, 84, 88, 90 , 91, 97, 104,105, 108]
names = ['bob', 'alice', 'bob', 'bob' , 'ali', 'alice', 'alice' , 'ali', 'moji', 'ali', 'moji', 'alice' , 'bob', 'bob', 'bob']
user_answer = [2 , 2 , 1 , 3 , 1 , 4 , 4 , 4 , 1 , 1 , 2 , 3 , 3 ,1 , 4]
correct_answer = [2 , 3 , 2 , 3 , 1 , 1 , 4 , 4 , 4 , 1 , 2 , 1 , 3 ,1 , 4]
df = pd.DataFrame({'name' : names , 'time' : times , 'user_answer'  : user_answer ,  'correct_answer'  : correct_answer})

我如何获得一个包含三列的数据框:

名称:每个名称仅重复一次(通过使用groupby名称)

平均时间:该名称旁边mean的时间

得分:该用户user_answer等于correct_answer的时间

只有一个groupby代码吗?

2 个答案:

答案 0 :(得分:1)

使用比较值Series.eq创建帮助列,并使用命名的聚合结果按GroupBy.agg进行聚合:

import discord

intents = discord.Intents(members=True)
client = commands.Bot(command_prefix="!", intents=intents)

# The remainder of your code...

答案 1 :(得分:0)

类似这样的东西:

xxx