jmquintana79
9/27/2017 - 2:09 AM

rescaling dataframe

Rescaling columns of dataframe between 0 and 1.

## rescaling between 0 and 1
def rescaling(DATA,lcol):
    from sklearn.preprocessing import MinMaxScaler
    import pandas as pd
    from datetime import datetime, timedelta

    # clean data
    DF = DATA[lcol].dropna(inplace=False)
    if len(DF)<len(DATA): print('WARNING: it has been deleted %s rows with NaN values'%(len(DATA)-len(DF)))
    
    # collect datetime data
    ldt = DF.index.tolist()
    
    # df to array
    X = DF.values
    
    # rescaling
    scaler = MinMaxScaler(feature_range=(0, 1))
    rescaledX = scaler.fit_transform(X)
       
    # array to df
    RESCALED = pd.DataFrame(rescaledX,columns=lcol)
    RESCALED['datetime'] = ldt
    RESCALED = RESCALED.set_index(['datetime'])
    RESCALED.index = pd.to_datetime(RESCALED.index)
    
    # return
    return RESCALED