Otro método de iteración: .itertuples()

Cómo escribir código Python eficiente

Logan Thomas

Scientific Software Technical Trainer, Enthought

Datos de victorias por equipo

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
...
Cómo escribir código Python eficiente
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'>
...
Cómo escribir código Python eficiente

Iterar con .itertuples()

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
Cómo escribir código Python eficiente

Comparando métodos

%%timeit
for row_tuple in team_wins_df.iterrows():
    print(row_tuple)
527 ms ± 41.1 ms por bucle (media ± desv. típ. de 7 ejecuciones, 1 bucle cada una)
%%timeit
for row_namedtuple in team_wins_df.itertuples():
    print(row_namedtuple)
7.48 ms ± 243 µs por bucle (media ± desv. típ. de 7 ejecuciones, 100 bucles cada una)
Cómo escribir código Python eficiente
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
...
Cómo escribir código Python eficiente

¡Sigamos iterando!

Cómo escribir código Python eficiente

Preparing Video For Download...