Skip to main content
`Ctrl`+`K`

# pandas.DataFrame.sem

DataFrame.sem(*, axis=0, skipna=True, ddof=1, numeric_only=False, **kwargs)

  Return unbiased standard error of the mean over requested axis.

  Normalized by N-1 by default. This can be changed using the ddof argument

  Parameters:
    axis{index (0), columns (1)}

      For Series this parameter is unused and defaults to 0.

      Warning

      The behavior of DataFrame.sem with `axis=None` is deprecated, in a future version this will reduce over both axes and return a scalar To retain the old behavior, pass axis=0 (or do not pass axis).

    skipna bool, default True

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

    ddof int, default 1

      Delta Degrees of Freedom. The divisor used in calculations is N - ddof, where N represents the number of elements.

    numeric_only bool, default False

      Include only float, int, boolean columns. Not implemented for Series.

    **kwargs

      Additional keywords passed.

  Returns:
    Series or DataFrame (if level specified)

      Unbiased standard error of the mean over requested axis.

  See also

  `DataFrame.var`

    Return unbiased variance over requested axis.

  `DataFrame.std`

    Returns sample standard deviation over requested axis.

  Examples

      >>> s = pd.Series([1, 2, 3])
      >>> round(s.sem(), 6)
      0.57735

  With a DataFrame

      >>> df = pd.DataFrame({"a": [1, 2], "b": [2, 3]}, index=["tiger", "zebra"])
      >>> df
             a   b
      tiger  1   2
      zebra  2   3
      >>> df.sem()
      a   0.5
      b   0.5
      dtype: float64

  Using axis=1

      >>> df.sem(axis=1)
      tiger   0.5
      zebra   0.5
      dtype: float64

  In this case, numeric_only should be set to True to avoid getting an error.

      >>> df = pd.DataFrame({"a": [1, 2], "b": ["T", "Z"]}, index=["tiger", "zebra"])
      >>> df.sem(numeric_only=True)
      a   0.5
      dtype: float64