code: def _dtype_to_stata_type(dtype, column):
      
      # TODO: expand to handle datetime to integer conversion
      if dtype.type == np.object_:  # try to coerce it to the biggest string
          # not memory efficient, what else could we
          # do?
          itemsize = max_len_string_array(ensure_object(column.values))
          return max(itemsize, 1)
      elif dtype == np.float64:
          return 255
      elif dtype == np.float32:
          return 254
      elif dtype == np.int32:
          return 253
      elif dtype == np.int16:
          return 252
      elif dtype == np.int8:
          return 251
      else:  # pragma : no cover
          raise NotImplementedError(
              "Data type {dtype} not supported.".format(dtype=dtype))
docs: Convert dtype types to stata types. Returns the byte of the given ordinal.
      See TYPE_MAP and comments for an explanation. This is also explained in
      the dta spec.
      1 - 244 are strings of this length
                           Pandas    Stata
      251 - for int8      byte
      252 - for int16     int
      253 - for int32     long
      254 - for float32   float
      255 - for double    double
  
      If there are dates to convert, then dtype will already have the correct
      type inserted.