作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到的问题是我想预测一支球队对另一支球队的胜利,为此我希望在比赛日期之前获得每场比赛的胜率。
但是,使用 df.groupBy("teamName").agg({"isVictory":"mean"})
为我提供了团队的全局信息,但该信息不可用,因为您不应该知道此时所有比赛的胜率。
所以我想要的是获取本场比赛之前比赛的胜率,知道我的 DataFrame 中有一个列 index
来保持比赛的顺序(即,如果索引匹配的索引低于当前匹配的索引,这意味着之前已经进行过匹配,因此应将本次匹配视为平均值)
请注意,我的专栏是:
indexMatch, nameTeam, isVictoryTeam
(isVictoryTeam= 如果团队 1 获胜,则为 0 如果团队失败)
数据集示例:
IndexMatch isVictoryTeam team winrate
0 1 1 a NaN
1 2 0 a 1
2 3 1 a 0.5
3 4 1 a 0.6667
胜率是预期的输出。
预先感谢您的帮助。
最佳答案
一定有更好的方法,但这个有效:
df = pd.DataFrame({'team': [' a', ' a', ' a', ' a', 'b', 'b', 'c'],
'IndexMatch': [1, 2, 3, 4, 5, 6, 7],
'isVictoryTeam': [1, 0, 1, 1, 0, 1, 1]})
df['winrate'] = df.groupby('team')['isVictoryTeam'].expanding().mean().reset_index().groupby('team')['isVictoryTeam'].shift().reset_index(drop=True)
df
# IndexMatch isVictoryTeam team winrate
#0 1 1 a NaN
#1 2 0 a 1.000000
#2 3 1 a 0.500000
#3 4 1 a 0.666667
#4 5 0 b NaN
#5 6 1 b 0.000000
#6 7 1 c NaN
关于python - Pandas 数据帧 : how to get column mean valuebut taking into account only the rows that have lower index than the one I want to get the mean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52037095/
我遇到的问题是我想预测一支球队对另一支球队的胜利,为此我希望在比赛日期之前获得每场比赛的胜率。 但是,使用 df.groupBy("teamName").agg({"isVictory":"mean"
我是一名优秀的程序员,十分优秀!