code: def _apply_different_encoders_to_columns():
      """
      One standalone LabelEncoder will be applied on the pets,
      and another one will be shared for the columns owner and location.
      """
      p = ColumnTransformer(
          [
              # A different encoder will be used for column 0 with name "pets":
              (0, FlattenForEach(LabelEncoder(), then_unflatten=True)),
              # A shared encoder will be used for column 1 and 2, "owner" and "location":
              (
                  [1, 2],
                  FlattenForEach(LabelEncoder(), then_unflatten=True),
              ),
          ],
          n_dimension=2,
      )
  
      p, predicted_output = p.fit_transform(df.values)
  
      expected_output = np.array(
          [[0, 1, 0, 2, 1, 1], [1, 3, 0, 1, 5, 3], [4, 2, 2, 4, 4, 2]]
      ).transpose()
      assert np.array_equal(predicted_output, expected_output)
  
imports: import numpy
  import pandas
  from sklearn.preprocessing import LabelEncoder
  from neuraxle.steps.column_transformer import ColumnTransformer
  from neuraxle.steps.loop import FlattenForEach
label_desc: Use image node_id 2 for calling a global function with example usage: _apply_different_encoders_to_columns() without return types