我目前正在学习Pandas ,但遇到了一个问题.
我有以下数据:
labels = [ 'date', 'name', 'opponent', 'gf', 'ga']
data = [
[ '2023-08-5', 'Liverpool', 'Man Utd', 5, 0 ],
[ '2023-08-10', 'Liverpool', 'Everton', 0, 0 ],
[ '2023-08-14', 'Liverpool', 'Tottenham', 3, 2 ],
[ '2023-08-18', 'Liverpool', 'Arsenal', 4, 4 ],
[ '2023-08-27', 'Liverpool', 'Man City', 0, 0 ],
]
df = pd.DataFrame(data, columns=labels)
游戏/行按日期排序.对于每一行/比赛,我想计算前一行/比赛中"goals_for"和"goals_against"的列值(不包括当前行或日期之后的行).
所以我希望数据是这样的:
labels = [ 'date', 'name', 'opponent', 'gf', 'ga', 'total_gf', 'total_ga' ]
data = [
[ '2023-08-5', 'Liverpool', 'Man Utd', 5, 0, 0, 0 ],
[ '2023-08-10', 'Liverpool', 'Everton', 0, 0, 5, 0 ],
[ '2023-08-14', 'Liverpool', 'Tottenham', 3, 2, 5, 0 ],
[ '2023-08-18', 'Liverpool', 'Arsenal', 4, 4, 8, 2 ],
[ '2023-08-27', 'Liverpool', 'Man City', 0, 0, 12, 6 ],
]
我try 了expanding()
个,但似乎包括当前行.rolling
有参数closed='left'
,但其他人没有.
感谢任何帮助、提示或类似解决方案的链接.