def create_pca_lag(principal_components_train_test_df, shift_amount, number_of_pca_lag_component_to_include=5, tuning_mode=True ):
    """
    This function creates a new dataframe by taking the first 3 first principal components (in the first three columns) and shifting them in a desire number
    
    Args:
    principal_components_train_test_df: a pandas dataframe 
    shift_amount: the number of positions to shift the first three columnms
    tuning_mode: a boolean parameter set for cases when tuning is made. Automatically set to True unless provided a False.
    
    Return:
    A pandas dataframe containing the shifted 3 first columns of the dataframe,
    with column names 'pca1_lag1','pca2_lag1','pca3_lag1'
    """
    X_pc_lag = principal_components_train_test_df.iloc[:,0:(number_of_pca_lag_component_to_include-1)]
    if tuning_mode == True:
        print(f"X_pc_lag shape: {X_pc_lag.shape}")

    X_pc_lag.columns = ['pca1_lag1','pca2_lag1','pca3_lag1']
    X_pc_lag = X_pc_lag.shift(shift_amount)

    if tuning_mode == True:
        print(f"X_pc_lag: {X_pc_lag}")
        print(f"X_pc_lag shape. {X_pc_lag.shape}")
    return X_pc_lag