这是我正在运行的代码的一个简单示例,我希望将结果放入 pandas 数据帧中(除非有更好的选择):
for p in game.players.passing():
print p, p.team, p.passing_att, p.passer_rating()
R.Wilson SEA 29 55.7
J.Ryan SEA 1 158.3
A.Rodgers GB 34 55.8
使用此代码:
d = []
for p in game.players.passing():
d = [{'Player': p, 'Team': p.team, 'Passer Rating':
p.passer_rating()}]
pd.DataFrame(d)
我可以得到:
Passer Rating Player Team
0 55.8 A.Rodgers GB
这是一个 1x3 数据框,我明白why它只有一行,但我不知道如何使其成为多行,且列的顺序正确。理想情况下,该解决方案能够处理n行数(基于 p),如果列数由请求的统计数据数量设置,那就太好了(尽管不是必需的)。有什么建议么?提前致谢!
最简单的答案是 Paul H 所说的:
d = []
for p in game.players.passing():
d.append(
{
'Player': p,
'Team': p.team,
'Passer Rating': p.passer_rating()
}
)
pd.DataFrame(d)
但如果你真的想“从循环中构建并填充数据帧”(顺便说一句,我不推荐),那么你应该这样做。
d = pd.DataFrame()
for p in game.players.passing():
temp = pd.DataFrame(
{
'Player': p,
'Team': p.team,
'Passer Rating': p.passer_rating()
}
)
d = pd.concat([d, temp])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)