Writing Efficient Python Code
Logan Thomas
Scientific Software Technical Trainer, Enthought
print(team_wins_df)
Team Year W
0 ARI 2012 81
1 ATL 2012 94
2 BAL 2012 93
3 BOS 2012 69
4 CHC 2012 61
...
for row_tuple in team_wins_df.iterrows():
print(row_tuple)
print(type(row_tuple[1]))
(0, Team ARI
Year 2012
W 81
Name: 0, dtype: object)
<class 'pandas.core.series.Series'>
(1, Team ATL
Year 2012
W 94
Name: 1, dtype: object)
<class 'pandas.core.series.Series'>
...
for row_namedtuple in team_wins_df.itertuples():
print(row_namedtuple)
Pandas(Index=0, Team='ARI', Year=2012, W=81)
Pandas(Index=1, Team='ATL', Year=2012, W=94)
...
print(row_namedtuple.Index)
1
print(row_namedtuple.Team)
ATL
%%timeit
for row_tuple in team_wins_df.iterrows():
print(row_tuple)
527 ms ± 41.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
%%timeit
for row_namedtuple in team_wins_df.itertuples():
print(row_namedtuple)
7.48 ms ± 243 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
for row_tuple in team_wins_df.iterrows():
print(row_tuple[1]['Team'])
ARI
ATL
...
for row_namedtuple in team_wins_df.itertuples():
print(row_namedtuple['Team'])
TypeError: tuple indices must be integers or slices, not str
for row_namedtuple in team_wins_df.itertuples():
print(row_namedtuple.Team)
ARI
ATL
...
Writing Efficient Python Code