第一个是关于使用statsmodels包提取调整后的R^2。
原来直接加在后面就行了。
def my_f2(x):
temp_x = x['Ask Size'] - x['Bid Size']
temp_y = x['mid quote return']
temp_x = sm.add_constant(temp_x)
results = sm.OLS(temp_y, temp_x).fit()
return results.rsquared
pands对数据框的一列按照时间进行分割的时候,好像是必须是索引。
BARC_COPY = BARC.set_index(['time'])
g1 = BARC_COPY['mid quote return'].resample('10s').std()
第一行就是将一列设置为索引,然后使用resample来设置分割,如果为5分组就是为5T。
添加链接描述
pandas的groupby可以依靠多列或者单列进行处理,但是agg好像只能对分组后的单列,因此,如果为了分组后对多列进行处理,可以使用for循环提取出每一组,然后对每一组进行处理,将处理的结果保存。
my_time = list()
val1 = list()
for name, group in BARC.groupby(BARC['time'].apply(lambda x: x.strftime("%Y-%m-%d %H:%M"))):
my_time.append(name)
val1.append(my_f2(group))
如果两个pd的series对象的列不对应,算出来的数值是缺失值的。
就是两个pd.series对应的索引必须一样。
pandas的索引和行变量进行转换:
添加链接描述