dask_expr._resample.Resampler.ohlc
dask_expr._resample.Resampler.ohlc¶
- Resampler.ohlc()[源代码]¶
计算一组数据的开盘、最高、最低和收盘值,排除缺失值。
此文档字符串是从 pandas.core.resample.Resampler.ohlc 复制的。
Dask 版本可能存在一些不一致性。
对于多个分组,结果索引将是 MultiIndex
- 返回
- DataFrame
每个组内的开盘、最高、最低和收盘值。
示例
对于 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
对于 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
对于重采样器:
>>> 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