python 积累3

2018-12-14  本文已影响0人  黄yy家的jby

摘要

1. 线性回归简单归纳

import statsmodels.api as sm
from statsmodels.stats.outliers_influence import summary_table

def calc_ols_result(index_yield, sw_yield):
    x = np.array(sw_yield)
    x = sm.add_constant(x)      #再左侧增加一个为1的变量x0
    y = np.array(index_yield)
    model = sm.OLS(y, x)
    results = model.fit()
#  print(results.summary())
#输出所需的结果
    alpha = round(results.params[0], 6)
    beta = round(results.params[1], 4)
    r2 = results.rsquared
    return [alpha, beta, r2]
#返回的是个list

2. 不提醒warning

import warnings
warnings.filterwarnings("ignore")

3.获取当前工作路径

import os
os.chdir('C:\\Users\\jiangbaiyan\\Desktop\\根据我良的改良版本')
os.getcwd()    #获取当前工作目录

4.Dataframe 行列

hs300 = pd.read_excel('hs300.xlsx',skiprows= 1)
#skiprows 是跳过多少行
hs300.set_index(['时间'],inplace=True)
#设置行名
hs300.columns = ['**','**','**']
#设置列名
hs300['xxx']=yyy
#新增列,xxx为新增部分,yyy不能为新增

5.特定筛选

managers = set(list(df[df.起始日期 == '2018/3/9'].基金经理))
#将df中起始日期为20180309的所有基金经理取set(不重复)
result = pd.DataFrame([],columns=['**','存活期数'])
for manager in managers:
    temp = df[df.基金经理==manager]
    ttt = len(set(list(temp.起始日期)))
    temp.存活期数 = ttt
    result = pd.concat([result,temp])
#最后拼接的结果为按照基金经理筛选,加一列存活期数
a = result.sort_values(by='存活期数',axis=0,ascending=False)    
a.to_excel('**.xlsx')
#sort_value(by='')进行dataframe排序

6.对股票代码的处理

a = []
for code in code.stock_code:
    a.append(str(code).zfill(6))

这样能保证按照字符串储存,且6位数字

上一篇 下一篇

猜你喜欢

热点阅读