【发布时间】:2015-03-19 07:41:20
【问题描述】:
这是我正在运行的代码的一个简单示例,我希望将结果放入 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),如果列数由请求的统计数据数设置,那将是很棒的(尽管不是必需的)。有什么建议?提前致谢!
【问题讨论】:
-
每次迭代都会覆盖列表,而不是追加
-
对,我明白它有什么问题,问题是我不知道如何让它正常工作。这只是我能得到的最接近的。
-
下面的答案会起作用。您也可以在循环中执行
d.append({'Player': ...})。列表上的 Python 文档非常好。 -
您还应该澄清您的问题以说明真正的问题:您在附加到空列表时遇到问题。 (您似乎非常了解如何从字典列表创建数据框)
-
虽然我想我明白你在说什么,但我相信我提出的问题实际上是我更喜欢,而我发布的代码是我之前能得到的最接近的寻求帮助。