temporian.EventSet.where #
where(
on_true: Union[EventSetOrNode, Any],
on_false: Union[EventSetOrNode, Any],
) -> EventSetOrNode
Choose event-wise feature values from on_true
or on_false
depending on the boolean value of self
.
Given an input EventSet
with a single boolean
feature, create a new one using the same sampling, and choosing values
from on_true
when the input is True
, otherwise take value from
on_false
.
Both on_true
and on_false
can be single values or
EventSets
with the same sampling as the boolean
input and one single feature. In any case, both sources must have the
same data type, or be explicitly casted to the same type beforehand.
Example with single values
>>> a = tp.event_set(timestamps=[5, 9, 9],
... features={'f': [True, True, False]})
>>> b = a.where(on_true='hello', on_false='goodbye')
>>> b
indexes: ...
events:
(3 events):
timestamps: [5. 9. 9.]
'f': [b'hello' b'hello' b'goodbye']
...
Example with EventSets
>>> a = tp.event_set(timestamps=[5, 9, 10],
... features={'condition': [True, True, False],
... 'yes': [1, 2, 3],
... 'no': [-1, -2, -3]})
>>> b = a['condition'].where(a['yes'], a['no'])
>>> b
indexes: ...
events:
(3 events):
timestamps: [ 5. 9. 10.]
'condition': [ 1 2 -3]
...
Example setting to NaN based on condition
>>> a = tp.event_set(timestamps=[5, 6, 7, 8, 9],
... features={'f': [1, 2, -3, -4, 5]})
>>> # Set values < 0 to nan (cast to float to support nan)
>>> b = (a['f'] >= 0).where(a['f'].cast(float), np.nan)
>>> b
indexes: ...
events:
(5 events):
timestamps: [5. 6. 7. 8. 9.]
'f': [ 1. 2. nan nan 5.]
...
Parameters:
Name | Type | Description | Default |
---|---|---|---|
on_true |
Union[EventSetOrNode, Any]
|
Source of values from when the condition is True. |
required |
on_false |
Union[EventSetOrNode, Any]
|
Source of values from when the condition is False. |
required |
Returns:
Type | Description |
---|---|
EventSetOrNode
|
EventSet with a single feature and same sampling as input. |