下面是我正在运行的代码的一个简单示例,我希望将结果放入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数据帧,我理解为什么它只有一行,但我不知道如何使它以正确的顺序排列成多行。理想情况下,该解决方案能够处理n行数(基于p),如果列数由所请求的统计数设置将是非常好的(尽管不是必需的)。有什么建议吗?提前谢谢!
最简单的答案是保罗H所说的:
但如果你真的想“从循环中构建并填充一个数据帧”(顺便说一句,我不建议这么做),那么你可以这样做。
尝试使用列表理解:
使用数据创建元组列表,然后使用它创建数据帧:
元组列表的开销应该比列表字典少。我在下面对此进行了测试,但请记住,在大多数情况下,代码理解的容易程度优先于性能。
测试功能:
结果:
相关问题 更多 >
编程相关推荐