QianYanDai 2020-07-05
结合自己的经验,我觉得Pandas的本质是类似于Matlab、Eviews之类的数据分析软件。只是其他的被人做成了有UI界面的软件。
从Pandas的结构来看,最核心的两个类。其他功能是围绕这两个类进行了功能上的扩展。
pandas.Series()
pandas.DataFrame()
从数据分析的全过程来看,主要的步骤如下:
数据.获取
数据.读取
数据.清洗加工
数据.统计分析
数据.结果输出
为了保持学习的趣味性,我觉得按照实际使用的过程来学习可能会更好,但是必须先要对pandas.Series和pandas.DateFrame有点基本认识。从前面的项目经验来看,最好的学习动力就是需求,而这里我的需求是对股票进行跟踪分析,去测试我的交易策略效率。
我是学金融出身,但是很多前辈告诉我,金融学的很多基础理论在实践中不能帮你赚到钱,反而是不受金融理论限制的思维模式才是量化的生存之道。对于这些经验我觉得还是要实践出真知,所以,我们不妨先测试下ETF50的套利交易到底能不能赚到钱。
一维的数据对象,类似列表,那自然就增、删、改、查等基本功能。同时,还增加很多计算需要的属性与方法。官方文档中一共列出了14个类别,100多种。
https://pandas.pydata.org/pandas-docs/stable/reference/series.html#series
我比较着急的是想要用起来,边用边学。因此,我们主要来看这个对象的结构。
Series([data, index, dtype, name, copy, …])
import pandas as pd
s = pd.Series([1,2,3,4,5,6])
二维的数据对象,类似于多层嵌套的字典,但是又比字典高级多了。官方文档一共列出了n个属性与方法。
https://pandas.pydata.org/pandas-docs/stable/reference/frame.html#dataframe
DataFrame([data])
df = pd.DataFrame(s)
计算的时候总共分3步,1到2是第二组......lower: i. 这组数据中的小值 higher: j. 这组数据中的大值,fraction 是第三步中的小数部分,意思是当前这组数据的0到1的分位数
Series是一种类似于一维数组的对象,由一组数据以及一组与之对应的索引组成。 index: 索引序列,必须是唯一的,且与数据的长度相同. 如果没有传入索引参数,则默认会自动创建一个从0~N的整数索引