Skip to main content
`Ctrl`+`K`

# pandas.core.resample.Resampler.ohlc

final Resampler.ohlc(*args, **kwargs)

  Compute open, high, low and close values of a group, excluding missing values.

  For multiple groupings, the result index will be a MultiIndex

  Returns:
    DataFrame

      Open, high, low and close values within each group.

  Examples

  For SeriesGroupBy:

      >>> lst = ['SPX', 'CAC', 'SPX', 'CAC', 'SPX', 'CAC', 'SPX', 'CAC',]
      >>> ser = pd.Series([3.4, 9.0, 7.2, 5.2, 8.8, 9.4, 0.1, 0.5], index=lst)
      >>> ser
      SPX     3.4
      CAC     9.0
      SPX     7.2
      CAC     5.2
      SPX     8.8
      CAC     9.4
      SPX     0.1
      CAC     0.5
      dtype: float64
      >>> ser.groupby(level=0).ohlc()
           open  high  low  close
      CAC   9.0   9.4  0.5    0.5
      SPX   3.4   8.8  0.1    0.1

  For DataFrameGroupBy:

      >>> data = {2022: [1.2, 2.3, 8.9, 4.5, 4.4, 3, 2 , 1],
      ...         2023: [3.4, 9.0, 7.2, 5.2, 8.8, 9.4, 8.2, 1.0]}
      >>> df = pd.DataFrame(data, index=['SPX', 'CAC', 'SPX', 'CAC',
      ...                   'SPX', 'CAC', 'SPX', 'CAC'])
      >>> df
           2022  2023
      SPX   1.2   3.4
      CAC   2.3   9.0
      SPX   8.9   7.2
      CAC   4.5   5.2
      SPX   4.4   8.8
      CAC   3.0   9.4
      SPX   2.0   8.2
      CAC   1.0   1.0
      >>> df.groupby(level=0).ohlc()
          2022                 2023
          open high  low close open high  low close
      CAC  2.3  4.5  1.0   1.0  9.0  9.4  1.0   1.0
      SPX  1.2  8.9  1.2   2.0  3.4  8.8  3.4   8.2

  For Resampler:

      >>> ser = pd.Series([1, 3, 2, 4, 3, 5],
      ...                 index=pd.DatetimeIndex(['2023-01-01',
      ...                                         '2023-01-10',
      ...                                         '2023-01-15',
      ...                                         '2023-02-01',
      ...                                         '2023-02-10',
      ...                                         '2023-02-15']))
      >>> ser.resample('MS').ohlc()
                  open  high  low  close
      2023-01-01     1     3    1      2
      2023-02-01     4     5    3      5