pandas_因子标准化(例子)

题目:

1. 将因子数据做标准化处理

2. 以2021-01-04的PE数据作为例子数据

概念:

因子标准化:将因子数据按某种标准把数据转化成某个范围内

注:一般要将因子数据去极值后再进行标准化处理

import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
df_pe_20210104 = pd.read_csv('./pe_20210104.csv',encoding='utf-8')
df_pe_20210104 = df_pe_20210104.loc[:,['secID','tradeDate','closePrice','PE']]
df_pe_20210104.head()

# 自实现3倍中位数绝对偏差去极值
def mad(factor):
    me = np.median(factor)
    mad = np.median(abs(factor-me))
    # 求出3倍中位数的上下限制
    up = me + (3*1.4826*mad)
    down = me - (3*1.4826*mad)
    # 利用3倍中位数的值去极值
    factor = np.where(factor>up,up,factor)
    factor = np.where(factor<down,down,factor)
    return factor
df_pe_20210104['pe_mad'] = mad(df_pe_20210104['PE'])
df_pe_20210104['PE'].plot()
df_pe_20210104['pe_mad'].plot()

std_s = StandardScaler()
df_pe_20210104['pe_mad_std_s']=std_s.fit_transform(df_pe_20210104['pe_mad'].to_frame())
df_pe_20210104['pe_mad_std_s'].plot()

# 自实现标准化
def stand(factor):
	mean = factor.mean()
	std = factor.std()
	return (factor-mean)/std
df_pe_20210104['pe_mad_std'] = stand(df_pe_20210104['pe_mad'])

PS:

所使用的数据

链接:https://pan.baidu.com/s/11GubyLR2ZkuiXhyk5n6MzA 
提取码:n14t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值