def process_data(df, encoders, process_target=True):
    """Processes an input DataFrame into a format
    sutable for model prediction.

    This function loads the encoder specifications created in
    `build_encoders`.

    # Arguments
        df: a DataFrame containing the source data
        encoders: a dict of encoders to process the data.
        process_target: boolean to determine if the target should be encoded.

    # Returns
        A tuple: A list containing all the processed fields to be fed
        into the model, and the processed target field.
    """

    # Pclass
    pclass_enc = df['Pclass'].values
    pclass_enc = encoders['pclass_encoder'].transform(pclass_enc)

    # Sex
    sex_enc = df['Sex'].values
    sex_enc = encoders['sex_encoder'].transform(sex_enc)

    # Age
    age_enc = df['Age'].values.reshape(-1, 1)
    age_enc = encoders['age_encoder'].transform(age_enc)

    # Siblings/Spouses Aboard
    siblings_spouses_aboard_enc = df['Siblings/Spouses Aboard'].values
    siblings_spouses_aboard_enc = encoders['siblings_spouses_aboard_encoder'].transform(
        siblings_spouses_aboard_enc)

    # Parents/Children Aboard
    parents_children_aboard_enc = df['Parents/Children Aboard'].values
    parents_children_aboard_enc = encoders['parents_children_aboard_encoder'].transform(
        parents_children_aboard_enc)

    # Fare
    fare_enc = df['Fare'].values.reshape(-1, 1)
    fare_enc = encoders['fare_encoder'].transform(fare_enc)

    data_enc = [pclass_enc,
                sex_enc,
                age_enc,
                siblings_spouses_aboard_enc,
                parents_children_aboard_enc,
                fare_enc
                ]

    if process_target:
        # Target Field: Survived
        survived_enc = df['Survived'].values

        survived_enc = encoders['survived_encoder'].transform(survived_enc)

        return (data_enc, survived_enc)

    return data_enc