当前位置: 首页 > 知识库问答 >
问题:

如何从for循环构建和填充pandas dataframe?[副本]

尚棋
2023-03-14

下面是我正在运行的代码的一个简单示例,我希望将结果放入pandas dataframe中(除非有更好的选择):

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的dataframe,我理解为什么它只有一行,但我不知道如何用正确的列顺序使它成为多行。理想情况下,解决方案能够处理n个行(基于p),如果列数由请求的统计数据数来设置,那将是非常好的(尽管不是必要的)。有什么建议吗?提前感谢!

共有1个答案

赫连琦
2023-03-14

最简单的答案是保罗·H所说的:

d = []
for p in game.players.passing():
    d.append(
        {
            'Player': p,
            'Team': p.team,
            'Passer Rating':  p.passer_rating()
        }
    )

pd.DataFrame(d)

但是,如果您真的想“从循环构建和填充dataframe”(顺便说一句,我不建议这样做),下面是您应该怎么做。

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])
 类似资料:
  • 问题内容: 这是我正在运行的代码的一个简单示例,我希望将结果放入pandas数据框中(除非有更好的选择): 使用此代码: 我可以得到: 这是一个1x3的数据帧,我理解 为什么 它只有一行,但是我不知道如何使列以正确的顺序变为多行。理想情况下,该解决方案将能够处理 n 行(基于p),并且如果列数由请求的统计数来设置,那将是很棒的(尽管不是必须的)。有什么建议?提前致谢! 问题答案: 使用列表理解尝试

  • 我如何循环年和月来显示下面的输出?显示期间的限制也是当月和年度,显示3年,包括截至日期的年度。意思是如果现在是2019年,那就展示2018年和2017年。 2019 1 201 9 2 201 9 3 201 9 4 201 9 5 201 9 6

  • 我对JSF非常陌生,我需要一些帮助来完成我认为非常简单的任务。我想从数组或循环之类的东西填充selectonemenu。我有一个表格,我想让用户输入他们的DOB。我想要的只是一个简单的列表,他们可以从中进行选择。。每月的第31天。我不想要31岁 标签。我试图在我的支持bean中放入一个“getDates”方法,但效果不好。如有任何建议,我们将不胜感激。

  • 我试图对文本进行实体分析,我想把结果放在数据框中。目前,结果不存储在字典中,也不存储在数据框中。结果用两个函数提取。 df: 我有以下代码: 该代码给出了以下结果: 我已经在函数中创建了和一个数据框。这个线程解释了在循环中附加到数据帧是没有效率的。我不知道如何以有效的方式填充数据框。这些线程与我的问题相关,但它们解释了如何从存量数据填充数据框。当我尝试使用并返回时,我得到一个错误: 在entity

  • 问题内容: 这个问题已经在这里有了答案 : 如何并行地遍历两个列表? (7个答案) 5年前关闭。 我正在尝试使用for循环创建字典。这是我的代码: 输出: 为什么? 我正计划将其输出: 为什么不以这种方式输出?我们如何使其正确输出? 问题答案: 或者

  • 和C语言不同的的是 和if一样,条件表达式的值必须是布尔类型 和if一样,不需要编写圆括号 和if一样,左大括号必须和表达式在同一行 格式: for 初始化表达式;循环条件表达式;循环后的操作表达式 { 循环体语句; } package main import "fmt" func main() { for i:=0; i<10; i++{ fmt.Println(i