❖ CarryOverColumns
Use the CarryOverColumns constraint when you have the same columns in different tables, and the values of those columns have to match up according to a key (ID) column.

Constraint API
This functionality is in Beta. At this time, select SDV Enterprise users have been invited to use this feature.
Create a CarryOverColumns
constraint
Parameters:
(required)
common_column_info
: A list of dictionaries that describe all the columns within your dataset that are carried over. Each dictionary should have the following keys:table_name
: The name of the table that contains the columncarryover_column_name
: The name of the column that is repeated across your datasetkey_column_name
: The name of the column to use as the key for the carried over column. Must be a PII or ID sdtype.
Please supply 2 or more columns for this constraint.
from sdv.cag import CarryOverColumns
my_constraint = CarryOverColumns(
common_column_info=[{
'table_name': 'Account',
'carryover_column_name': 'Type',
'key_column_name': 'ID'
}, {
'table_name': 'Transaction',
'carryover_column_name': 'Type',
'key_column_name': 'Account ID'
}]
)
Make sure that all the tables and columns you provide are in your Metadata.
Usage
Apply the constraint to any SDV synthesizer. Then fit and sample as usual.
synthesizer = HSASynthesizer(metadata)
synthesizer.add_constraints([my_constraint])
synthesizer.fit(data)
synthetic_data = synthesizer.sample()
For more information about using predefined constraints, please see the Constraint-Augmented Generation tutorial.
Last updated