pandas.core.groupby.SeriesGroupBy.ohlc # 系列分组依据。ohlc ( ) [来源] # 计算一组的开盘价、最高价、最低价和收盘价,排除缺失值。 对于多个分组,结果索引将是 MultiIndex 返回: 数据框每组内的开盘价、最高价、最低价和收盘价。 例子 对于系列分组依据: >>> 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