示例中使用的‘000001.XSHE.csv’文件,已上传至csdn资源中,可直接下载
import pandas as pd
# 读取CSV文件 df = pd.read_csv('./000001.XSHE.csv') df = df[:10] # 取前10行数据 df
rolling函数:计算移动平均线MA
# 5日均线的计算:即最近5天收盘价的均值 # 使用rolling函数进行计算:rolling(n)即为取最近n行数据的意思,只计算这n行数据。后面可以接各类计算函数,例如max、min、std等 df['MA_5'] = df['close'].rolling(5).mean() df[['date','close','MA_5']]
由于前4天不满足5天的条件,因此,前4天的MA_5值为空
# 计算近5天的最大值 df['max_5'] = df['close'].rolling(5).max() df[['date','close','max_5']]
同样可以使用df[‘close’].rolling(5).min()计算5日最小值df[‘close’].rolling(5).std()计算标准差
expanding函数
作用:expanding()函数计算从一开始至今的某些数据值,实现累计计算,即不断扩展;类似于cumsum()函数的累加操作。
那如何将MA_5前4天的数据使用前几天的数据均值进行补充呢?
如第二天收盘价 = 前2天收盘价均值, 第三天收盘价 = 前3天收盘价均值…
此时就需要用到expanding函数:可以用于计算每天的从一开始至今的均值。
df['收盘价_至今均值'] = df['close'].expanding().mean() df[['date','close','MA_5','收盘价_至今均值']]
# 同样的,expanding函数后面可以接各类计算函数,计算从头至今的各类数据。 df['close'].expanding().max() df['close'].expanding().min() df['close'].expanding().std()