pandas.core.resample.Resampler.ohlc#

finalResampler.ohlc()[source] #

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.

See also

DataFrame.agg

Aggregate using one or more operations over the specified axis.

DataFrame.resample

Resample time-series data.

DataFrame.groupby

Group DataFrame using a mapper or by a Series of columns.

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
On this page

This Page