时间序列数据是金融数据分析的基础,对时间序列数据处理是数据分析中特征工程的一个重要步骤
时间格式处理
#转化成时间格式
for data in [data_train, data_test_a]:
data['issueDate'] = pd.to_datetime(data['issueDate'],format='%Y-%m-%d')
startdate = datetime.datetime.strptime('2007-06-01', '%Y-%m-%d')
- 通过
pd.to_datetime
将文本型的时间数据读取成为时间格式,参数format用来指定需要格式化的的格式format='%y-%m-%d'
datetime.strptime
可以将时间字符串转化为一个对象输出
对于已经是datetime格式的数据,如果我们要去掉时间后面的时分秒,可以用以下代码
data_pay['出院日期'] = data_pay['出院日期'].dt.date
- 这里相当于用时间戳的date属性(日期)覆盖掉了原来的时间戳
由于在pandas中两列时间相减得到的是时间类型timedelta,要转化为整数可以用
data['住院天数']=data['住院天数'].apply(lambda x: x.days+1) # +1是为了包尾包头
收益率
类似股票这样的时间序列数据需要计算收益率,在python中计算收益率的方法有很多
df['log_rtn'] **=** np**.**log(df**.**adj_close**/**df**.**adj_close**.**shift(1))
对数收益率
均线
类似股票这样的时间序列数据中均线是一个重要的指标,可以帮助我们判断趋势,在python中绘制均线的方法有很多
df['moving_std_252'] **=** df[['log_rtn']]**.**rolling(window**=**252)**.**std()
- window用来表示多少天的均线
- 后面可以有各种计算方法,比如标准差,均值等
rolling
在pandas中用于计算均线,字如其意