Skip to main content
`Ctrl`+`K`

# pandas.DataFrame.product

DataFrame.product(*, axis=0, skipna=True, numeric_only=False, min_count=0, **kwargs)

  Return the product of the values over the requested axis.

  This multiplies all values in each column (or row when `axis=1`) together, skipping missing values by default. An empty or all-NA column returns `1` unless `min_count` is specified.

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

      Axis for the function to be applied on. For Series this parameter is unused and defaults to 0.

      Warning

      The behavior of DataFrame.prod 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).

      Added in version 2.0.0.

    skipna bool, default True

      Exclude NA/null values when computing the result.

    numeric_only bool, default False

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

    min_count int, default 0

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

    **kwargs

      Additional keyword arguments to be passed to the function.

  Returns:
    Series or scalar

      The product of the values over the requested axis.

  See also

  `Series.sum`

    Return the sum.

  `Series.min`

    Return the minimum.

  `Series.max`

    Return the maximum.

  `Series.idxmin`

    Return the index of the minimum.

  `Series.idxmax`

    Return the index of the maximum.

  `DataFrame.sum`

    Return the sum over the requested axis.

  `DataFrame.min`

    Return the minimum over the requested axis.

  `DataFrame.max`

    Return the maximum over the requested axis.

  `DataFrame.idxmin`

    Return the index of the minimum over the requested axis.

  `DataFrame.idxmax`

    Return the index of the maximum over the requested axis.

  Examples

  By default, the product of an empty or all-NA Series is `1`

      >>> pd.Series([], dtype="float64").prod()
      1.0

  This can be controlled with the `min_count` parameter

      >>> pd.Series([], dtype="float64").prod(min_count=1)
      nan

  Thanks to the `skipna` parameter, `min_count` handles all-NA and empty series identically.

      >>> pd.Series([np.nan]).prod()
      1.0

      >>> pd.Series([np.nan]).prod(min_count=1)
      nan