这是我正在运行的代码的一个简单示例,我希望将结果放入 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),如果列数由请求的统计数据数设置,那将是很棒的(尽管不是必需的)。有什么建议么?提前致谢!
最佳答案
最简单的答案是 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])
关于python - 如何从 for 循环构建和填充 Pandas 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28056171/