pandas.api.typing.DataFrameGroupBy.first#

DataFrameGroupBy.first(numeric_only=False, min_count=-1, skipna=True)[source]#

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_onlybool, default False

Include only float, int, boolean columns.

min_countint, 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.

skipnabool, 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