Skip to main content
`Ctrl`+`K`

# pandas.api.typing.DataFrameGroupBy.var

DataFrameGroupBy.var(ddof=1, engine=None, engine_kwargs=None, numeric_only=False, skipna=True)

  Compute variance of groups, excluding missing values.

  For multiple groupings, the result index will be a MultiIndex.

  Parameters:
    ddof int, default 1

      Degrees of freedom.

    engine str, default None

      - `'cython'` : Runs the operation through C-extensions from cython.

      - `'numba'` : Runs the operation through JIT compiled code from numba.

      - `None` : Defaults to `'cython'` or globally setting `compute.use_numba`

    engine_kwargs dict, default None

      - For `'cython'` engine, there are no accepted `engine_kwargs`

      - For `'numba'` engine, the engine can accept `nogil` and `parallel` dictionary keys. The values must either be `True` or `False`. The default `engine_kwargs` for the `'numba'` engine is `{'nogil': False, 'parallel': False}`

    numeric_only bool, default False

      Include only float, int or boolean data.

      Changed in version 2.0.0: numeric_only now defaults to `False`.

    skipna bool, default True

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

      Added in version 3.0.0.

  Returns:
    Series or DataFrame

      Variance of values within each group.

  See also

  `Series.var`

    Apply function var to a Series.

  `DataFrame.var`

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

  Examples

  For SeriesGroupBy:

      >>> lst = ["a", "a", "a", "b", "b", "b"]
      >>> ser = pd.Series([7, 2, 8, 4, 3, 3], index=lst)
      >>> ser
      a     7
      a     2
      a     8
      b     4
      b     3
      b     3
      dtype: int64
      >>> ser.groupby(level=0).var()
      a    10.333333
      b     0.333333
      dtype: float64

  For DataFrameGroupBy:

      >>> data = {"a": [1, 3, 5, 7, 7, 8, 3], "b": [1, 4, 8, 4, 4, 2, 1]}
      >>> df = pd.DataFrame(
      ...     data, index=["dog", "dog", "dog", "mouse", "mouse", "mouse", "mouse"]
      ... )
      >>> df
               a  b
        dog    1  1
        dog    3  4
        dog    5  8
      mouse    7  4
      mouse    7  4
      mouse    8  2
      mouse    3  1
      >>> df.groupby(level=0).var()
                    a          b
      dog    4.000000  12.333333
      mouse  4.916667   2.250000