摘要
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位数字
网友评论