Skip to content

Commit d1019d4

Browse files
committed
not use lambda method
1 parent 24cc977 commit d1019d4

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

sdv/sequential/par.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@
3838
LOGGER = 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+
4146
class 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()):

tests/unit/sequential/test_par.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,24 @@
1414
from sdv.metadata.metadata import Metadata
1515
from sdv.metadata.single_table import SingleTableMetadata
1616
from sdv.sampling import Condition
17-
from sdv.sequential.par import PARSynthesizer
17+
from sdv.sequential.par import PARSynthesizer, _diff_and_bfill
1818
from sdv.single_table.base import BaseSynthesizer
1919
from 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+
2235
class TestPARSynthesizer:
2336
def get_metadata(self, add_sequence_key=True, add_sequence_index=False):
2437
metadata = Metadata()

0 commit comments

Comments
 (0)