--------------------------------------------------------------------------- ValueError Traceback (most recent call last) in () ----> 1 synthetic_data = synthesizer.sample() 19 frames /usr/local/lib/python3.10/dist-packages/sdv/multi_table/base.py in sample(self, scale) 391 392 with self._set_temp_numpy_seed(): --> 393 sampled_data = self._sample(scale=scale) 394 395 return sampled_data /usr/local/lib/python3.10/dist-packages/sdv/sampling/hierarchical_sampler.py in _sample(self, scale) 220 LOGGER.info(f'Sampling {num_rows} rows from table {table}') 221 sampled_data[table] = self._sample_rows(synthesizer, num_rows) --> 222 self._sample_children(table_name=table, sampled_data=sampled_data) 223 224 added_relationships = set() /usr/local/lib/python3.10/dist-packages/sdv/sampling/hierarchical_sampler.py in _sample_children(self, table_name, sampled_data) 140 if child_name not in sampled_data: # Sample based on only 1 parent 141 for _, row in sampled_data[table_name].iterrows(): --> 142 self._add_child_rows( 143 child_name=child_name, 144 parent_name=table_name, /usr/local/lib/python3.10/dist-packages/sdv/sampling/hierarchical_sampler.py in _add_child_rows(self, child_name, parent_name, parent_row, sampled_data, num_rows) 106 child_synthesizer = self._recreate_child_synthesizer(child_name, parent_name, parent_row) 107 --> 108 sampled_rows = self._sample_rows(child_synthesizer, num_rows) 109 110 if len(sampled_rows): /usr/local/lib/python3.10/dist-packages/sdv/sampling/hierarchical_sampler.py in _sample_rows(self, synthesizer, num_rows) 69 if num_rows is None: 70 num_rows = synthesizer._num_rows ---> 71 return synthesizer._sample_batch(int(num_rows), keep_extra_columns=True) 72 73 def _get_num_rows_from_parent(self, parent_row, child_name, foreign_key): /usr/local/lib/python3.10/dist-packages/sdv/single_table/base.py in _sample_batch(self, batch_size, max_tries, conditions, transformed_conditions, float_rtol, progress_bar, output_file_path, keep_extra_columns) 652 while num_valid < batch_size and counter < max_tries: 653 prev_num_valid = num_valid --> 654 sampled, num_valid = self._sample_rows( 655 num_rows_to_sample, 656 conditions, /usr/local/lib/python3.10/dist-packages/sdv/single_table/base.py in _sample_rows(self, num_rows, conditions, transformed_conditions, float_rtol, previous_rows, keep_extra_columns) 569 raw_sampled = self._sample(num_rows) 570 --> 571 sampled = self._data_processor.reverse_transform(raw_sampled) 572 if keep_extra_columns: 573 input_columns = self._data_processor._hyper_transformer._input_columns /usr/local/lib/python3.10/dist-packages/sdv/data_processing/data_processor.py in reverse_transform(self, data, reset_keys) 855 try: 856 if not data.empty: --> 857 reversed_data = self._hyper_transformer.reverse_transform_subset( 858 data[reversible_columns] 859 ) /usr/local/lib/python3.10/dist-packages/rdt/hyper_transformer.py in reverse_transform_subset(self, data) 885 Reversed subset. 886 """ --> 887 return self._reverse_transform(data, prevent_subset=False) 888 889 def reverse_transform(self, data): /usr/local/lib/python3.10/dist-packages/rdt/hyper_transformer.py in _reverse_transform(self, data, prevent_subset) 868 output_columns = transformer.get_output_columns() 869 if output_columns and set(output_columns).issubset(data.columns): --> 870 data = transformer.reverse_transform(data) 871 872 reversed_columns = self._subset(self._input_columns, data.columns) /usr/local/lib/python3.10/dist-packages/rdt/transformers/base.py in wrapper(self, *args, **kwargs) 53 method_name = function.__name__ 54 with set_random_states(self.random_states, method_name, self.set_random_state): ---> 55 return function(self, *args, **kwargs) 56 57 return wrapper /usr/local/lib/python3.10/dist-packages/rdt/transformers/base.py in reverse_transform(self, data) 475 data = data.copy() 476 columns_data = self._get_columns_data(data, self.output_columns) --> 477 reversed_data = self._reverse_transform(columns_data) 478 data = data.drop(self.output_columns, axis=1) 479 data = self._add_columns_to_data(data, reversed_data, self.columns) /usr/local/lib/python3.10/dist-packages/rdt/transformers/categorical.py in _reverse_transform(self, data) 193 194 result = pd.cut(data, bins=bins, labels=labels, include_lowest=True) --> 195 return result.replace(nan_name, np.nan).astype(self.dtype) 196 197 /usr/local/lib/python3.10/dist-packages/pandas/core/generic.py in astype(self, dtype, copy, errors) 6238 else: 6239 # else, only a single dtype is given -> 6240 new_data = self._mgr.astype(dtype=dtype, copy=copy, errors=errors) 6241 return self._constructor(new_data).__finalize__(self, method="astype") 6242 /usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py in astype(self, dtype, copy, errors) 446 447 def astype(self: T, dtype, copy: bool = False, errors: str = "raise") -> T: --> 448 return self.apply("astype", dtype=dtype, copy=copy, errors=errors) 449 450 def convert( /usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py in apply(self, f, align_keys, ignore_failures, **kwargs) 350 applied = b.apply(f, **kwargs) 351 else: --> 352 applied = getattr(b, f)(**kwargs) 353 except (TypeError, NotImplementedError): 354 if not ignore_failures: /usr/local/lib/python3.10/dist-packages/pandas/core/internals/blocks.py in astype(self, dtype, copy, errors) 524 values = self.values 525 --> 526 new_values = astype_array_safe(values, dtype, copy=copy, errors=errors) 527 528 new_values = maybe_coerce_values(new_values) /usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py in astype_array_safe(values, dtype, copy, errors) 297 298 try: --> 299 new_values = astype_array(values, dtype, copy=copy) 300 except (ValueError, TypeError): 301 # e.g. astype_nansafe can fail on object-dtype of strings /usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py in astype_array(values, dtype, copy) 225 if not isinstance(values, np.ndarray): 226 # i.e. ExtensionArray --> 227 values = values.astype(dtype, copy=copy) 228 229 else: /usr/local/lib/python3.10/dist-packages/pandas/core/arrays/categorical.py in astype(self, dtype, copy) 535 536 elif is_integer_dtype(dtype) and self.isna().any(): --> 537 raise ValueError("Cannot convert float NaN to integer") 538 539 elif len(self.codes) == 0 or len(self.categories) == 0: ValueError: Cannot convert float NaN to integer