python - 如何在循环中创建多个可在循环外使用的 Panda Dataframe
问题描述
我正在尝试抓取一个体育博彩网站并使用 Pandas 显示结果。我想为每个游戏都有一个单独的数据框。每场比赛分为客队和主队。我有每个团队的名单。在此示例中,我希望 515 列表和 516 列表位于一个 df 中,而 519 和 520 列表位于单独的框架中。我不知道如何在循环外打印 df。
A =
['515', '6:00PM', 'Toronto', '-5.5 -110', '-5 -115']
['516', '6:00PM', 'Washington', '233 -110', '235.5 -114']
['531', '9:00PM', 'Milwaukee', '-4.5 -110', '-4.5 -109']
['532', '9:00PM', 'Phoenix', '226.5 -110', '228.5 -112']
for i in range(0, number_of_games):
df.loc[counter] = ([A[j] for j in range(len(A))])
print(df)
在循环内我的 df 看起来很棒,但在循环外它只返回最后一个值。我知道它会被覆盖,但我不知道如何防止这种情况。
输出内循环
# TIME TEAM OPEN CURRENT
0 515 6:00PM Toronto -5.5 -110 -5 -115
1 516 6:00PM Washington 233 -110 235.5 -114
# TIME TEAM OPEN CURRENT
0 531 9:00PM Milwaukee -4.5 -110 -4.5 -109
1 532 9:00PM Phoenix 226.5 -110 228.5 -112
输出外环
# TIME TEAM OPEN CURRENT
0 531 9:00PM Milwaukee -4.5 -110 -4.5 -109
1 532 9:00PM Phoenix 226.5 -110 228.5 -112
我敢打赌,我已经浏览了这里的 100 个帖子,但仍然无法将我的大脑包裹起来。任何帮助,将不胜感激。
解决方案
我确定您有需要单个数据帧的理由,但您需要在每次迭代期间创建新的数据帧名称/变量,否则每个数据帧都称为 df.
我重写了您的输入,因为正如评论者所说,您遗漏了一些代码和/或描述。
我将您的列表包装在一个新列表中,然后对其进行迭代。
A = [['515', '6:00PM', 'Toronto', '-5.5 -110', '-5 -115'],
['516', '6:00PM', 'Washington', '233 -110', '235.5 -114'],
['531', '9:00PM', 'Milwaukee', '-4.5 -110', '-4.5 -109'],
['532', '9:00PM', 'Phoenix', '226.5 -110', '228.5 -112']]
chunk = 2
total_lists = len(A)
num_games = int(total_lists / num_lists)
for i in range(num_games):
df = pd.DataFrame()
homeaway = A[chunk*chunk*i+chunk]
for g in homeaway:
dft = pd.DataFrame(g).T
df = pd.concat([df, dft])
globals()['df_{}'.format(i)] = df
print(df_0)
print(df_1)
输出:
print(df_0)
print(df_1)
0 1 2 3 4
0 515 6:00PM Toronto -5.5 -110 -5 -115
0 516 6:00PM Washington 233 -110 235.5 -114
0 1 2 3 4
0 531 9:00PM Milwaukee -4.5 -110 -4.5 -109
0 532 9:00PM Phoenix 226.5 -110 228.5 -112
但是您也许可以在代码中使用全局变量。也许是这样的:
for i in range(0, number_of_games):
df.loc[counter] = ([A[j] for j in range(len(A))])
globals()['df_{}'.format(i)] = df.loc[counter]
推荐阅读
- flutter - 用于 Web 服务的 Flutter 格式说明符
- spring-boot - 无法使用自定义身份验证入口点更改响应。弹簧靴
- locking - 为专用 Actor 锁定消息队列
- pandas - Pandas 根据每列趋势绘制多条线
- sql - AWS DMS。复制实例中的端点连接失败(错误:1020912)
- java - 如何在javafx中更改图像的背景
- python - sklearn “管道实例尚未安装。” 错误,即使它是
- linux - 使用crontab调用脚本执行userdel
- html - 元素与其边界之间不需要的额外空间
- sql - 使用 group by 更新同一个表中的两列?