Skip to main content
`Ctrl`+`K`

# pandas.DataFrame.itertuples

DataFrame.itertuples(index=True, name='Pandas')

  Iterate over DataFrame rows as namedtuples.

  Each row becomes a namedtuple (or plain tuple if `name` is None) with field names taken from the column names or positional names. Generally faster and more type-stable than `iterrows()`.

  Parameters:
    index bool, default True

      If True, return the index as the first element of the tuple.

    name str or None, default “Pandas”

      The name of the returned namedtuples or None to return regular tuples.

  Returns:
    iterator

      An object to iterate over namedtuples for each row in the DataFrame with the first field possibly being the index and following fields being the column values.

  See also

  `DataFrame.iterrows`

    Iterate over DataFrame rows as (index, Series) pairs.

  `DataFrame.items`

    Iterate over (column name, Series) pairs.

  Notes

  The column names will be renamed to positional names if they are invalid Python identifiers, repeated, or start with an underscore.

  Examples

      >>> df = pd.DataFrame(
      ...     {"num_legs": [4, 2], "num_wings": [0, 2]}, index=["dog", "hawk"]
      ... )
      >>> df
            num_legs  num_wings
      dog          4          0
      hawk         2          2
      >>> for row in df.itertuples():
      ...     print(row)
      Pandas(Index='dog', num_legs=4, num_wings=0)
      Pandas(Index='hawk', num_legs=2, num_wings=2)

  By setting the index parameter to False we can remove the index as the first element of the tuple:

      >>> for row in df.itertuples(index=False):
      ...     print(row)
      Pandas(num_legs=4, num_wings=0)
      Pandas(num_legs=2, num_wings=2)

  With the name parameter set we set a custom name for the yielded namedtuples:

      >>> for row in df.itertuples(name="Animal"):
      ...     print(row)
      Animal(Index='dog', num_legs=4, num_wings=0)
      Animal(Index='hawk', num_legs=2, num_wings=2)