【发布时间】:2018-06-10 17:13:52
【问题描述】:
我对用户进行的足球比赛进行了投注。他们的状态是正确的还是不正确的。每周(表中的“jornada”)每个用户有 10 场比赛。此外,用户被分组到社区中。
我想计算每个用户每周 ('jornada') 的累积比率 #Corrects / (#Corrects + #Incorrects)。
每个用户每周都会有 10 次新的猜测(“数字”),这些猜测必须与他在同一季节的先前猜测相加(“temporada”)。
这是我尝试过的:
bets.groupby(['temporada', 'username', 'comunidad', 'jornada'])['status'].cumsum()
但正在引发错误:DataError: No numeric types to aggregate
我也在尝试使用 get_dummies 来隐藏状态,然后在组上应用 cum_sum,但是对于同一用户在同一周出现的 10 次,我应该得到相同的比率,但它没有发生:
dum = pd.get_dummies(bets['status'])
bets2 = pd.concat([bets, dum], axis=1)
corrects = bets2.groupby(['temporada', 'username', 'comunidad', 'jornada'])['Correct'].cumsum()
incorrects = bets2.groupby(['temporada', 'username', 'comunidad', 'jornada'])['Incorrect'].cumsum()
ratio = corrects / (corrects + incorrects)
bets3 = pd.concat([bets2, ratio], axis=1)
【问题讨论】:
标签: pandas group-by pandas-groupby cumsum