如何解决复杂的流程

我正在处理的基本项目中充斥着SQL数据库中的表。 我写了关于如何将Python和SQL与Pandas一起线程化的文章,但是显然我认为将每个表作为其自己的DataFrame单独导入并使用它并不存在问题。

挑出我想要的数据并不是一个简单的过程。 完整的观察值数据要求访问每个表都保存一个,以便获得完整的观察值数据。

那最后一张桌子? 它正成为一组列名,因此也将使用它们。 许多表的名称相似并没有帮助。

有时,处理一系列棘手的调用和命令的唯一好方法是将其物理分解成每一个。 和。 每个。 小。 步。

我既是视觉学习者又是线性思维者,这意味着如果我没有立即看到最终目标(即目标很简单),我将希望分别查看每个步骤。 这意味着-我承认这种情况已经发生了很多-为了达到最终目标,我将分解尽可能多的简单组件。

这正是我在代码脚本中分解过程的方式:

  #我需要找到迈阿密每场比赛的统计数据。 这个 
#需要了解迈阿密的team_id,这将
#给我在game_team表中指向相同ID的ID
game_team_stat表中的#个game_team_id数字。

#向后工作,这意味着一个游戏的统计数据处于
使用game_team_id访问我想要的#game_team_stat,
#是game_team表中的“ id”,并且该“ id”已链接
#到team_id,这是团队表中的“ id”。
#首先,获取团队ID。
t_id = 2390
#第二,获取game_team中与该团队ID链接的ID列表。
g_t_ids = games2017 [games2017 ['team_id'] == t_id] .id
#第三,获取第一款游戏的统计数据并按type_id进行排序
game1_stats = game_team_stats [game_team_stats.game_team_id == g_t_ids.iloc [0]]。sort_values(by ='type_id',ascending = True)
#第四,按类别访问统计数据并将其放入列表。#第五,第一场比赛对手的统计数据是什么? 一世
#需要使用相同的game_team_id并将其链接到对手的
#team_id。 因此,我再次需要游戏表中的游戏ID,
#与team_id配对。
oneteam_gameids = games2017 [games2017 ['team_id'] == t_id] .game_id
#然后,我需要使用每个游戏ID才能找到球队
#参与并获得另一支队伍的game_team_id
first_game_ex = oneteam_gameids.iloc [0]
opp_team_gtid = games2017 [(games2017 ['game_id'] == first_game_ex)&(games2017 ['team_id']!= t_id)]。id
game1_def_stats = game_team_stats [game_team_stats.game_team_id == opp_team_gtid.iloc [0]]。sort_values(by ='type_id',ascending = True)
game1_def_stats

对于这么多在变量名称中带有“游戏”或“团队”的数据框,我可能没有任何帮助。

现在,在成千上万个数据点的过程中,您将不再需要逐行进行每个观察。 这将永远,而且很愚蠢。

那就是函数,循环和列表推导起作用的地方。 我将大量使用所有这些内容,以便将数据转换成我喜欢使用的形式。

哎呀,即使在上面的代码段中,我也不得不在不同的场合记住两次,使用“ .iloc [0]”来获得所需的值。

如果我想一口咬掉整个过程,我根本不会看到。

这是一个常见的建议,将事情分解为最简单的组成部分,但是即使我发现自己有时也会忘记它。

呼吸,根据需要将其分解成许多小块,然后逐块构建过程。 很快,您将有一条漫长的路要走,这将使您的过程的其他所有运行都顺畅进行。