据目前为止我所了解的,每次我们对一个熊猫的数据帧执行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
代码吗?
答案 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