import pandas as pd
import numpy as np
from datetime import date, datetime
from perspective import PerspectiveWidget
data = pd.DataFrame({
"set": [True, False, True, False],
"num": np.arange(4)
})
''' PerspectiveWidget supports a wide range of filter conditions inside the `filters` kwarg.
Pass `filters` a list of lists - each element is a list of three values:
- [0]: a string column name to filter on
- [1]: a string filter operation, i.e. "<", ">", "==", "is null", "is not null"
- [2]: a value to filter on (not needed if using "is null"/"is not null" filters)
'''
widget = PerspectiveWidget(data, filters=[["set", "==", True]])
widget
data2 = pd.DataFrame({
"time": [datetime(2019, 6, 10, 12, 30), datetime(2019, 6, 10, 14, 30), datetime(2019, 6, 11, 12, 30), datetime(2019, 6, 11, 14, 30)],
"date": [date(2019, 6, 10), date(2019, 6, 11), date(2019, 6, 12), date(2019, 6, 13)],
"num": np.arange(4),
"nullable": [None, 1, None, 2]
})
# filters work with `date` and `datetime` values
widget2 = PerspectiveWidget(data2, filters=[["time", ">", datetime(2019, 6, 10, 12, 30)]])
widget2
widget2.filters = [["date", "==", date(2019, 6, 11)]] # apply a new set of filters to the widget
# filtering on "is null" or "not null" does not require a comparison value
widget3 = PerspectiveWidget(data2, filters=[["nullable", "is null"]])
widget3