Create a duration column specification.
USAGE
duration_field(
min_duration=None,
max_duration=None,
nullable=False,
null_probability=0.0,
unique=False,
generator=None,
)
Parameters
min_duration : str | timedelta | None = None
-
Minimum duration (inclusive). Can be string or timedelta object.
max_duration : str | timedelta | None = None
-
Maximum duration (inclusive). Can be string or timedelta object.
nullable : bool = False
-
Whether the column can contain null values. Default is False.
null_probability : float = 0.0
-
Probability of generating null when nullable=True. Default is 0.0.
unique : bool = False
-
Whether all values must be unique. Default is False.
generator : Callable[[], Any] | None = None
-
Custom callable that generates values. Overrides other settings.
Returns
DurationField
-
A duration field specification.
Examples
Define a schema with duration fields and generate test data:
import pointblank as pb
from datetime import timedelta
# Define a schema with duration field specifications
schema = pb.Schema(
session_length=pb.duration_field(
min_duration=timedelta(minutes=5),
max_duration=timedelta(hours=2)
),
wait_time=pb.duration_field(
min_duration=timedelta(seconds=30),
max_duration=timedelta(minutes=15)
),
)
# Generate 100 rows of test data
pb.generate_dataset(schema, n=100, seed=23)
shape: (100, 2)| session_length | wait_time |
|---|
| duration[μs] | duration[μs] |
| 1h 51m 24s | 13m 48s |
| 44m 34s | 5m 26s |
| 1h 58m 16s | 14m 39s |
| 16m 24s | 1m 55s |
| 7m 19s | 47s |
| … | … |
| 34m 48s | 4m 13s |
| 40m 16s | 4m 54s |
| 25m 24s | 3m 3s |
| 19m 37s | 2m 19s |
| 1h 29m 36s | 11m 4s |
Duration values are uniformly distributed within the specified range.
⦾