金融股票数据分析--用金融分析的方法学习数据处理
·
数据集下载
金融数据来自于 tushare 财经数据接口包
通过 tushare.get_k_data() 的方式获取股票历史数据,并对其数据做相关处理
1. 数据的保存和读取操作
- df.to_xxx() 操作,可以实现把获取的网络数据保存到本地的功能。通过设置path等可以设置保存的位置和文件格式。
df.to_csv('./maotai.csv')
- pd.read_csv()操作可以实现从本地路径读取文件的操作。
df = pd.read_csv('./maotai.csv')
2. 对DataFrame的数据操作
- 删除某一列:
DataFrame中的drop操作,可以实现对数据的行或列的删除操作。drop中的labels传入的是行或列的名称,是字符串形式的索引,axis用来指示行或列。要注意在这个操作中,axis=0表示删除行,axis=1表示删除列。inplace表示是否在原data上修改,若为True则在原数据上修改,若为False则会返回一个新的数组数据。
df.drop(labels='Unnamed: 0', axis=1, inplace=True)
- 数据类型的读取与转换
1. 用df.info()方法可以获取DataFrame的各列数据类型,同时可以起到查看数据中非空数量的作用。

2. 针对date列数据,想要把数据类型改成时间序列(datetime64),用的是.to_datetime()的方法。
df['date'] = pd.to_datetime(df['date'])

转成时间序列数据之后有很多便利的地方:
转为日期格式之后可以进行日期索引,日期加减。
3. 由于date数据具有唯一性,可以把date数据作为源数据的行索引。
df.set_index('date',inplace=True)
- 输出满足某一条件的数据行
可以以Boolean值做行索引,会返回Boolean值为True的行数据,忽略值为False的行数据。
##boolean值的确定 判断条件为收盘比开盘上涨3%
df['close']-df['open'])/df['open'] > 0.03
##把bool值作为行索引 找到所有满足条件的行数据
df.loc[(df['close']-df['open'])/df['open'] > 0.03)]
对DataFrame的操作:数据的上移和下移操作
##shift表示上下移动,括号内为1则为下移一行
df['open'].shift(1)

- 数据的重取样---来自“取出每个月的第一个交易日”
resample操作: 根据时间聚合采样
DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None,
label=None, convention='start', kind=None, loffset=None,
limit=None, base=0, on=None, level=None)

按月:‘M’
按年:‘A’
rolling操作:窗口函数
DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
可以完成将最近几个值相加、求平均等操作
具体参数设置:
- window:时间窗的大小,数值int,即向前几个数据(可以理解将最近的几个值进行group by)
- min_periods:最少需要有值的观测点的数量,对于int类型,默认与window相等
- center:把窗口的标签设置为居中,布尔型,默认False
- win_type: 窗口的类型,截取窗的各种函数。字符串类型,默认为None
- on: 可选参数,对于dataframe而言,指定要计算滚动窗口的列,值为列名
- closed:定义区间的开闭,支持int类型的window,对于offset类型默认是左开右闭的即默认为right,可以根据情况指定为left、both等
- axis:方向(轴),一般都是0
常用聚合函数:
- mean() 求平均
- count() 非空观测值数量
- sum() 值的总和
- median() 值的算术中值
- min() 最小值
- max() 最大
- std() 贝塞尔修正样本标准差
- var() 无偏方差
- skew() 样品偏斜度(三阶矩)
- kurt() 样品峰度(四阶矩)
- quantile() 样本分位数(百分位上的值)
- cov() 无偏协方差(二元)
- corr() 相关(二进制)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)