docs: def convert(self, converters, in_place=False):
          """
          Applies transformations to the dataset.
  
          :param converters: A dictionary specifying the function to apply to each field. If a field is missing from the dictionary, then it will not be transformed.
  
          :param in_place: Whether to perform the transformation in place or create a new dataset instance
  
          :return: the transformed dataset instance
          """
          dataset = self if in_place else self.__class__(OrderedDict([(name, data[:]) for name, data in self.fields.items()]))
          for name, convert in converters.items():
              if name not in self.fields.keys():
                  raise InvalidFieldsException('Converter specified for non-existent field {}'.format(name))
              for i, d in enumerate(dataset.fields[name]):
                  dataset.fields[name][i] = convert(d)
          return dataset