Registry / data / sdv
library1.37.1pypypi✓ verified 85d ago

SDV (Synthetic Data Vault) is a Python library that allows users to generate synthetic data for various data types, including single tables, multi-table relational datasets, and sequential data. It provides a range of models and tools to create high-quality synthetic data that preserves the statistical properties and privacy of the original data. As of version 1.36.0, it continues to be actively developed, with a regular release cadence to add new features and improve existing models.

pip install sdv
INSTALL
IMPORT
SIG · SDV
S
sdv
datapythonv1.37.1
Install
84.8s avg
Import
13958ms
Disk
5248MB
Pass rate
4/ 10
Env Coverage4 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.37.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
glibc
py 3.10
✕ build_error
✓ 96.6s
py 3.11
✕ build_error
✓ 86s
py 3.12
✕ build_error
✓ 82.1s
py 3.13
✕ build_error
✓ 74.6s
py 3.9
✕ build_error
✕ timeout
5248MB installed
● package 5248MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

GaussianCopulaSynthesizer
from sdv.single_table import GaussianCopulaSynthesizer
from sdv.models import GaussianCopulaSynthesizer
Synthesizers were moved out of 'sdv.models' in v0.17.0. Use 'sdv.single_table', 'sdv.multi_table', or 'sdv.sequential' depending on your data type.
SingleTablePreset
from sdv.single_table.preset import SingleTablePreset
from sdv.lite import SingleTablePreset
The 'sdv.lite' module was deprecated and removed. Presets are now found directly under the respective data type modules.
load_dataset
from sdv.datasets.demo import load_dataset

This quickstart demonstrates how to load a demo dataset, initialize a `GaussianCopulaSynthesizer` with the dataset's metadata, fit the synthesizer to the real data, and then sample synthetic data. This is a common workflow for single-table synthetic data generation.

import pandas as pd from sdv.single_table import GaussianCopulaSynthesizer from sdv.datasets.demo import load_dataset # 1. Load a demo dataset (returns an SDVData object with data and metadata) real_data = load_dataset('PUMS') # 2. Initialize a synthesizer, passing the metadata synthesizer = GaussianCopulaSynthesizer(metadata=real_data.metadata) # 3. Fit the synthesizer to the real data synthesizer.fit(real_data.data) # 4. Sample synthetic data synthetic_data = synthesizer.sample(num_rows=len(real_data.data)) print("Original data head:") print(real_data.data.head()) print("\nSynthetic data head:") print(synthetic_data.head())
Debug
Known issues
breakingSynthesizer import paths were changed in SDV v0.17.0. The `sdv.models` and `sdv.tabular` modules were removed.
fix
Update your imports. For single-table synthesizers, use `from sdv.single_table import ...`. For multi-table, `from sdv.multi_table import ...`, and for sequential, `from sdv.sequential import ...`.
affects: <0.17.0
gotchaWhile SDV can infer metadata, explicit metadata definition is often crucial for higher quality synthetic data, especially with complex schemas or specific data types (e.g., primary keys, relationships, sensitive columns).
fix
Manually create and pass `SingleTableMetadata` or `MultiTableMetadata` objects. Define primary keys, relationships, data types, and potentially privacy considerations explicitly for best results.
affects: All versions
gotchaGenerating synthetic data for very large datasets (millions of rows) or complex multi-table schemas can be memory-intensive and time-consuming.
fix
Consider downsampling your data for initial experimentation. Ensure your environment has sufficient RAM. For production-scale needs, explore SDV's performance optimization features or consider distributed processing frameworks if applicable.
affects: All versions
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'sdv.models'
Attempting to import a synthesizer from an old module path that was removed in SDV v0.17.0.
fix
Change your import statement from `from sdv.models import SynthesizerName` to `from sdv.single_table import SynthesizerName` (or `multi_table`/`sequential` as appropriate).
ValueError: The column '...' contains unsupported data types. Supported data types are numeric, boolean, datetime, and categorical.
SDV synthesizers have limitations on the types of data they can process directly (e.g., complex objects, nested lists, mixed types), or metadata inference incorrectly assigned a type.
fix
Preprocess your data to convert unsupported columns into one of the supported types. Explicitly define column types in your `sdv.metadata` object to guide the synthesizer.
NotEnoughDataError: Not enough data for synthesizer to learn from. Expected at least X rows but got Y rows.
The input dataset provided to `synthesizer.fit()` has too few rows for the selected synthesizer to effectively learn the underlying data patterns and statistical distributions.
fix
Ensure your training data has a sufficient number of rows (typically several dozens or hundreds at minimum, depending on complexity) to provide enough statistical information for the model. SDV is not designed for extremely small datasets.
Upgrade
Version history
1.37.1latest on PyPI · released Jun 11, 2026
Audit
Dependencies

No dependency data recorded yet.

Agent activity
15 hits · last 30 days
node
14
OpenAI (training)
1
Resources
sdv — pip install sdv · libregistry