- 交叉表: 用于计算一列数据对于另一列数据的分组个数(用于统计分组频率的特殊透视表) pd.crosstab(value1,value2)
- 透视表:将原有的dataframe的列分别作为行索引和列索引,然后对指定的列应用聚集函数 data.pivot_table()
探究股票的涨跌与星期几有关?
以下图当中表示,week代表星期几,1、0代表这一天股票的涨跌幅是好还是坏,里面的数据代表比例
案例分析
1.数据准备
- 准备两列数据,星期数据以及跌涨幅是好是坏数据
- 进行交叉表计算
交叉表
#寻找星期几跟股票涨跌的关系
#1.先把对应的日期找到星期几
date=pd.to_datetime(data.index).weekday #把index设置成datetime就可以调用weekday了
data['week']=date #给data增加week列#2.假如把col1按照大小去分个类0为界限
data['newcol']=np.where(data['col1']>0,1,0)#通过交叉表寻找两列数据的关系
count=pd.crosstab(data['week'], data['newcol']) #但是我们看到count只是每个星期日子好坏的天数,并没有得到比例#算数运算,先求和
sum=count.sum(axis=1).astype(np.float32)#进行相除操作,得出比例
pro=count.div(sum,axis=0)#3.查看效果
pro.plot(kind='bar', stacked=True)
put.show()
透视表
data.pivot_table([col1],index='week')