File tree Expand file tree Collapse file tree 2 files changed +20
-2
lines changed
Expand file tree Collapse file tree 2 files changed +20
-2
lines changed Original file line number Diff line number Diff line change 3838LOGGER = logging .getLogger (__name__ )
3939
4040
41+ def _diff_and_bfill (series ):
42+ """Compute the diff of a pandas Series and backfill the first NaN."""
43+ return series .diff ().bfill ()
44+
45+
4146class PARSynthesizer (LossValuesMixin , MissingModuleMixin , BaseSynthesizer ):
4247 """Synthesizer for sequential data.
4348
@@ -322,7 +327,7 @@ def _transform_sequence_index(self, data):
322327 else :
323328 diff_series = sequence_index .groupby (self ._sequence_key , group_keys = False )[
324329 self ._sequence_index
325- ].transform (lambda s : s . diff (). bfill () )
330+ ].transform (_diff_and_bfill )
326331
327332 sequence_index_sequence = diff_series .to_frame (name = self ._sequence_index )
328333 if all (sequence_index_sequence [self ._sequence_index ].isna ()):
Original file line number Diff line number Diff line change 1414from sdv .metadata .metadata import Metadata
1515from sdv .metadata .single_table import SingleTableMetadata
1616from sdv .sampling import Condition
17- from sdv .sequential .par import PARSynthesizer
17+ from sdv .sequential .par import PARSynthesizer , _diff_and_bfill
1818from sdv .single_table .base import BaseSynthesizer
1919from sdv .single_table .copulas import GaussianCopulaSynthesizer
2020
2121
22+ def test__diff_and_bfill ():
23+ """Test the ``_diff_and_bfill`` method."""
24+ # Setup
25+ data = pd .Series ([10 , 15 , 20 , 30 ])
26+
27+ # Run
28+ result = _diff_and_bfill (data )
29+
30+ # Assert
31+ expected = pd .Series ([5.0 , 5.0 , 5.0 , 10.0 ])
32+ pd .testing .assert_series_equal (result , expected )
33+
34+
2235class TestPARSynthesizer :
2336 def get_metadata (self , add_sequence_key = True , add_sequence_index = False ):
2437 metadata = Metadata ()
You can’t perform that action at this time.
0 commit comments