# Rename the columns to make the unstacking operation a bit easier
# Always a good idea to specify an explicit `copy` when you intend
# to change the dataframe structure
>>> tmp = df[['Home', 'Away', 'HomeGoal', 'AwayGoal']].copy()
# Arrange the columns into a MultiIndex to make stacking easier
>>> tmp.columns = pd.MultiIndex.from_product([['Team', 'Goal'], ['Home', 'Away']])
# This is what `tmp` look like:
Team Goal
Home Away Home Away
0 Arsenal MU 5 1
1 MCity Liv 2 2
2 MU Liv 3 4
3 MCity MU 0 0
# And now the magic
>>> tmp.stack() \
.groupby('Team').rolling(2).mean() \
.groupby('Team').tail(1) \
.droplevel([1,2])
# Result
Goal
Team
Arsenal NaN
Liv 3.0
MCity 1.0
MU 1.5
试着这样做:
根据
Home
和Away
目标分成两个数据帧列的名称
将两个dfs连接在一起
输出:
最近两场比赛的平均成绩:
在客场和主场比赛中,球队的总进球数
输出:
根据你的要求,你不在乎一支球队是主场还是客场,只在乎每场比赛进多少球。试试这个:
下面是它的工作原理:
stack
取消pivotsHome
和Away
,因此对于每个匹配,我们有两行用于Teams
和Goal
groupby('Team').rolling(2).mean()
获取每个队在过去2场比赛中得分的滚动平均值groupby('Team').tail(1)
获取每个团队的最后一个滚动平均值相关问题 更多 >
编程相关推荐