【问题标题】:Generating pandas dataframe with for loops使用 for 循环生成 pandas 数据帧
【发布时间】:2020-08-14 18:36:43
【问题描述】:

我想做一些看起来像这样的事情: (list_team 是一个熊猫数据框)

    count = 0
    for value_list in [list_team[count]]:
        home+str(count) = saison2018[saison2018.HomeTeam.isin(value_list)]
        away+str(count) = saison2018[saison2018.AwayTeam.isin(value_list)]
        count +=1

这当然不行,

编辑: 通过执行此循环,我想要的是:

value_list = [list_team[0]]:
            home0 = saison2018[saison2018.HomeTeam.isin(value_list)]
            away0 = saison2018[saison2018.AwayTeam.isin(value_list)]
value_list = [list_team[1]]:
            home1 = saison2018[saison2018.HomeTeam.isin(value_list)]
            away1 = saison2018[saison2018.AwayTeam.isin(value_list)]

创建名称为 home0 和 away0、然后是 home1 和 away 1、然后是 home2 和 away1 等的 pandas 数据框,直到 list_team 列表的末尾。 希望现在清楚了。

感谢您的帮助

【问题讨论】:

  • 您的问题不是很清楚,但您似乎想将saison2018 DataFrame 按HomeTeamAwayTeam 分组?你看过groupby吗?
  • 您可能应该将结果存储在按计数索引的字典中,但问题变成了您想用home0home1 等做什么?我担心这可能是XY problem 的情况。

标签: python pandas list loops


【解决方案1】:

我认为其中一个会起作用:

count = 0
for value_list in [list_team[count]]:
    exec("home%s= saison2018[saison2018.HomeTeam.isin(value_list)]" %(count))
    exec("away%s= saison2018[saison2018.AwayTeam.isin(value_list)]" %(count))
    count +=1

count = 0
for value_list in [list_team[count]]:
    exec("home%s= saison2018[saison2018.HomeTeam.isin(value_list)]" %(str(count)))
    exec("away%s= saison2018[saison2018.AwayTeam.isin(value_list)]" %(str(count)))
    count +=1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2020-12-06
    • 2019-06-21
    相关资源
    最近更新 更多