【发布时间】:2022-01-09 14:23:28
【问题描述】:
我有一个运动数据集,内容如下:
season team tm shk dgs brs cts cws avg_pt_marg
2015 sharks shk 0-0 1-3 2-0 4-1 3-2 1.2
2015 dogs dgs 3-1 0-0 2-1 1-1 2-0 3.4
2015 bears brs 0-2 1-2 0-0 1-3 2-1 -0.2
2015 cats cts 1-4 1-1 3-1 0-0 2-2 2.0
2015 cows cws 2-3 0-2 1-2 2-2 0-0 -2.1
2014 sharks shk 0-0 1-3 2-0 4-1 3-2 0.7
2014 dogs dgs 3-1 0-0 2-1 1-1 2-0 1.8
2014 bears brs 0-2 1-2 0-0 1-3 2-1 -1.9
2014 cats cts 1-4 1-1 3-1 0-0 2-2 2.3
2014 cows cws 2-3 0-2 1-2 2-2 0-0 -3.0
我想为每一行(球队的一个赛季)添加一列,其中包含球队对手的平均分差。
这是通过将与一支球队(该赛季)的比赛场数相加乘以该球队的得分优势(该赛季)除以总比赛场数(该赛季)计算得出的。
例如,对于 2015 年 sharks,,球队对手的平均分差将是 ((4 x 3.4)+(2 x -0.2)+(5 x 2.0)+(5 x -2.1)) / 16.
如何计算该列,然后将其添加到数据框中?
像这样:
season team tm shk dgs brs cts cws avg_pt_marg opponent_marg
2015 sharks shk 0-0 1-3 2-0 4-1 3-2 1.2
2015 dogs dgs 3-1 0-0 2-1 1-1 2-0 3.4
2015 bears brs 0-2 1-2 0-0 1-3 2-1 -0.2
2015 cats cts 1-4 1-1 3-1 0-0 2-2 2.0
2015 cows cws 2-3 0-2 1-2 2-2 0-0 -2.1
2014 sharks shk 0-0 1-3 2-0 4-1 3-2 0.7
2014 dogs dgs 3-1 0-0 2-1 1-1 2-0 1.8
2014 bears brs 0-2 1-2 0-0 1-3 2-1 -1.9
2014 cats cts 1-4 1-1 3-1 0-0 2-2 2.3
2014 cows cws 2-3 0-2 1-2 2-2 0-0 -3.0
【问题讨论】:
-
我不遵循你的逻辑 - 为什么 2015 团队 1
((4* 3.4)+(2 * -0.2)+(5 * 2.0)+(5 * -2.1)) / 16- 4x、2x ... 等值从何而来? -
@rg255 所以第一个学期:2015 年 team1 和 team2 打了 4 次,这就是为什么我做了 4 次队 2 的边距(3.4)。同样,在第二个任期内,2015 年 team1 与 Team 3 打了 2 次,这就是为什么我做了 2 倍于 Team 3 的保证金(-0.2)。希望这更有意义!
-
好的,所以每个单元格代表比赛 - 球队赢或输 - 例如因为 tm2 是 1-3,其中 tm==tm1,我们让 tm1 赢了一次,tm2 赢了 3 次?
-
您的数据中可能存在错误,其中 team=="team4", tm=="tm3"
-
哦,是的,这是一个错误。但是,是的,正确的想法。