pandas.DataFrame.iterrows
- DataFrame.iterrows()[source]
-
Iterate over DataFrame rows as (index, Series) pairs.
- Yields
-
- index:label or tuple of label
-
The index of the row. A tuple for a MultiIndex.
- data:Series
-
The data of the row as a Series.
See also
DataFrame.itertuples
-
Iterate over DataFrame rows as namedtuples of the values.
DataFrame.items
-
Iterate over (column name, Series) pairs.
Notes
-
Because
iterrows
returns a Series for each row, it does not preserve dtypes across the rows (dtypes are preserved across columns for DataFrames). For example,>>> df = pd.DataFrame([[1, 1.5]], columns=['int', 'float']) >>> row = next(df.iterrows())[1] >>> row int 1.0 float 1.5 Name: 0, dtype: float64 >>> print(row['int'].dtype) float64 >>> print(df['int'].dtype) int64
To preserve dtypes while iterating over the rows, it is better to use
itertuples()
which returns namedtuples of the values and which is generally faster thaniterrows
. You should never modify something you are iterating over. This is not guaranteed to work in all cases. Depending on the data types, the iterator returns a copy and not a view, and writing to it will have no effect.
© 2008–2021, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.3.4/reference/api/pandas.DataFrame.iterrows.html