sarimax_preparation.py 文件源码

python
阅读 67 收藏 0 点赞 0 评论 0

项目:Black-Swan 作者: 12190143 项目源码 文件源码
def sarimax_preparation_main(volume, test_volume, weather_train_file, weather_train_new_file, weather_test_file):

    train_data = volume.pivot(columns='id', values='volume')
    test_data = test_volume.pivot(columns='id', values='volume')
    tmp = pd.DataFrame({'T1D0':np.NaN,'T1D1':np.NaN,'T2D0':np.NaN,'T3D0':np.NaN,'T3D1':np.NaN},index=pd.date_range(start=datetime(2016,10,18)+Day(7),end=datetime(2016,10,25)+Day(7),freq='20min',closed='left'))
    tmp.set_value(test_data.index,test_data.columns, test_data.values)
    train_data = pd.concat((train_data, tmp))

    peakDummies = pd.get_dummies(train_data.index.map(peak_time))
    peakDummies.index = train_data.index
    dayDummies = pd.get_dummies(train_data.index.map(day_class))
    dayDummies.index = train_data.index
    train_data = pd.concat([train_data,peakDummies, dayDummies],axis=1)

    weather_train = pd.read_csv(weather_train_file)
    weather_train_new = pd.read_csv(weather_train_new_file)
    weather_test = pd.read_csv(weather_test_file)

    weather_full = pd.concat([weather_train, weather_train_new, weather_test]).reset_index()
    weather_full.precipitation = weather_full.precipitation * 4
    weather_full['precipitation'] = weather_full.precipitation.map(
        precipitation_grade)
    rain_dummies = pd.get_dummies(weather_full.precipitation)
    weather_feature = weather_full[['date', 'hour']].join(rain_dummies)
    weather_feature.index = weather_feature.apply(get_py_datetime, axis=1)
    weather_feature = weather_feature.resample('20min').first()
    weather_feature = weather_feature.fillna(method='ffill')
    weather_feature['diff'] = np.abs(weather_feature.index.map(
        lambda dt: dt.hour) - weather_feature.hour)
    weather_feature[weather_feature['diff'] >= 3] = np.nan
    del weather_feature['diff'],weather_feature['date'],weather_feature['hour']
    train_data = train_data.join(weather_feature)
    train_data.to_csv('sarimax_data.csv',index=True)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号