时间序列数据是金融数据分析的基础,对时间序列数据处理是数据分析中特征工程的一个重要步骤

时间格式处理

  1. #转化成时间格式
  2. for data in [data_train, data_test_a]:
  3. data['issueDate'] = pd.to_datetime(data['issueDate'],format='%Y-%m-%d')
  4. startdate = datetime.datetime.strptime('2007-06-01', '%Y-%m-%d')
  • 通过pd.to_datetime将文本型的时间数据读取成为时间格式,参数format用来指定需要格式化的的格式format='%y-%m-%d'
  • datetime.strptime可以将时间字符串转化为一个对象输出

对于已经是datetime格式的数据,如果我们要去掉时间后面的时分秒,可以用以下代码

  1. data_pay['出院日期'] = data_pay['出院日期'].dt.date
  • 这里相当于用时间戳的date属性(日期)覆盖掉了原来的时间戳

由于在pandas中两列时间相减得到的是时间类型timedelta,要转化为整数可以用

  1. 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中用于计算均线,字如其意