code: def insert(self, loc, column, value):
          
          if is_list_like(value):
              # TODO make work with another querycompiler object as `value`.
              # This will require aligning the indices with a `reindex` and ensuring that
              # the data is partitioned identically.
              if isinstance(value, pandas.Series):
                  value = value.reindex(self.index)
              value = list(value)
  
          def insert(df, internal_indices=[]):
              internal_idx = int(internal_indices[0])
              old_index = df.index
              df.index = pandas.RangeIndex(len(df.index))
              df.insert(internal_idx, internal_idx, value, allow_duplicates=True)
              df.columns = pandas.RangeIndex(len(df.columns))
              df.index = old_index
              return df
  
          new_data = self.data.apply_func_to_select_indices_along_full_axis(
              0, insert, loc, keep_remaining=True
          )
          new_columns = self.columns.insert(loc, column)
          return self.__constructor__(new_data, self.index, new_columns)
docs: Insert new column data.
  
          Args:
              loc: Insertion index.
              column: Column labels to insert.
              value: Dtype object values to insert.
  
          Returns:
              A new PandasQueryCompiler with new data inserted.