如果您使用Python和Pandas进行数据分析,即使对于小型DataFame,使用标准Python循环也是很费时间的,而对于大型DataFrame则需要花费特别长的时间。有什么方法可以优化呢?西面来看看不同遍历方法的性能
标准循环
DataFrame(数据帧)是具有行和列的Pandas对象(objects)。如果使用循环,则将遍历整个对象。 Python无法利用任何内置函数,而且速度非常慢。在我们的示例中,我们获得了一个具有65列和1140行的DataFrame(数据框)。它包含2016-2019赛季的足球成绩。我们要创建一个新列,以指示特定球队是否参加过平局。我们可以这样开始:
def soc_loop(leaguedf,TEAM,):
leaguedf['Draws'] = 99999
for row in range(0, len(leaguedf)):
if ((leaguedf['HomeTeam'].iloc[row] == TEAM) & (leaguedf['FTR'].iloc[row] == 'D')) | \
((leaguedf['AwayTeam'].iloc[row] == TEAM) & (leaguedf['FTR'].iloc[row] == 'D')):
leaguedf['Draws'].iloc[row] = 'Draw'
elif ((leaguedf['HomeTeam'].iloc[row] == TEAM) & (leaguedf['FTR'].iloc[row] !=