Skip to main content
`Ctrl`+`K`

# pandas.api.typing.DataFrameGroupBy.first

DataFrameGroupBy.first(numeric_only=False, min_count=-1, skipna=True)

  Compute the first entry of each column within each group.

  NA values are skipped by default, so the result is the first non-NA value per column — which may differ from the first row of the group. Pass `skipna=False` to keep NAs.

  Parameters:
    numeric_only bool, default False

      Include only float, int, boolean columns.

    min_count int, default -1

      The required number of valid values to perform the operation. If fewer than `min_count` valid values are present the result will be NA.

    skipna bool, default True

      Exclude NA values. If an entire group is NA, the result will be NA.

      Added in version 2.2.1.

  Returns:
    Series or DataFrame

      First values within each group.

  See also

  `DataFrame.groupby`

    Apply a function groupby to each row or column of a DataFrame.

  `api.typing.DataFrameGroupBy.last`

    Compute the last entry of each column within each group.

  `api.typing.DataFrameGroupBy.nth`

    Take the nth row from each group.

  Examples

      >>> df = pd.DataFrame(
      ...     dict(
      ...         A=[1, 1, 3],
      ...         B=[None, 5, 6],
      ...         C=[1, 2, 3],
      ...         D=["3/11/2000", "3/12/2000", "3/13/2000"],
      ...     )
      ... )
      >>> df["D"] = pd.to_datetime(df["D"])
      >>> df.groupby("A").first()
           B  C          D
      A
      1  5.0  1 2000-03-11
      3  6.0  3 2000-03-13
      >>> df.groupby("A").first(min_count=2)
          B    C          D
      A
      1 NaN  1.0 2000-03-11
      3 NaN  NaN        NaT
      >>> df.groupby("A").first(numeric_only=True)
           B  C
      A
      1  5.0  1
      3  6.0  3