看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas
的 Resampler.ohlc()
方法用于对时间序列数据进行重采样,并计算每个时间段的开盘价(open)、最高价(high)、最低价(low)和收盘价(close),即 OHLC 值。这个方法通常用于金融领域的时间序列数据分析,比如股票价格的分析。
计算一个组的开盘价、高点、低点和收盘价,不包括缺失值。对于多个分组,结果索引将是MultiIndex。
DataFrameGroupBy.ohlc()
SeriesGroupBy.ohlc
Resampler.ohlc()
这个方法没有任何参数。
ohlc()
方法不接受参数。它的作用是对时间序列数据进行重采样,并计算每个时间段的开盘、最高、最低和收盘值。
DataFrame
,每列分别对应 open
、high
、low
和 close
值。ohlc()
方法在金融时间序列数据的重采样中非常有用,可以帮助分析不同时间段内的价格变化情况。比如,你可以使用 ohlc()
方法对按分钟记录的股票价格进行重采样,生成按小时或按天的 OHLC 值。OHLC 是一个缩写,代表四个关键的价格数据点,通常用于金融市场的时间序列数据,特别是在股票、期货、外汇等交易中。具体含义如下:
OHLC 数据通常用于技术分析,它能帮助投资者和分析师理解一个特定时间段内价格的波动情况,并作出交易决策。每个时间段可以是不同的周期,比如分钟、小时、天、周、月等。使用 OHLC 数据可以生成蜡烛图(Candlestick Chart)等常见的金融图表,直观地展示价格走势。
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
'''
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
'''
以下示例展示了如何使用 Resampler.ohlc()
方法对股票价格数据按天进行重采样,并计算每个时间段的 OHLC 值。
import pandas as pd
import numpy as np
# 创建一个示例 DataFrame,模拟每分钟的股票价格数据
date_rng = pd.date_range(start='2024-01-01', end='2024-01-05', freq='T')
df = pd.DataFrame(date_rng, columns=['date'])
df['price'] = np.random.rand(len(date_rng)) * 100 + 100 # 模拟股票价格在 100-200 之间波动
# 将 'date' 列设置为索引
df.set_index('date', inplace=True)
print("原始 DataFrame:")
print(df.head())
# 使用 resample 按天重采样,并计算 OHLC 值
df_ohlc = df.resample('D').ohlc()
print("\n按天重采样后的 OHLC DataFrame:")
print(df_ohlc)
原始 DataFrame:
price
date
2024-01-01 00:00:00 141.573690
2024-01-01 00:01:00 151.255475
2024-01-01 00:02:00 138.543113
2024-01-01 00:03:00 123.996179
2024-01-01 00:04:00 171.824109
按天重采样后的 OHLC DataFrame:
price
open high low close
date
2024-01-01 141.573690 198.978546 100.123456 123.987654
2024-01-02 125.789012 199.987654 101.234567 134.567890
2024-01-03 134.567890 195.876543 102.345678 140.123456
2024-01-04 140.123456 197.765432 103.456789 145.987654
2024-01-05 145.987654 199.654321 105.678901 150.123456
resample('D').ohlc()
将数据按天进行重采样,并计算每一天的 OHLC 值。open
、high
、low
和 close
值,这些列代表每一天的开盘价、最高价、最低价和收盘价。Resampler.ohlc()
方法在金融分析中特别有用,可以帮助用户快速了解时间序列数据在指定时间段内的价格变化情况。
更新时间:2024-08-15 08:52:37 标签:pandas python 重采样 ohlc