piper.verbs.overlaps

piper.verbs.overlaps(df: pandas.core.frame.DataFrame, unique_key: Optional[Union[str, List[str]]] = None, start: str = 'effective', end: str = 'expiry', overlaps: str = 'overlaps')pandas.core.frame.DataFrame[source]

Analyse dataframe rows with overlapping date periods

Examples

data = {'prices': [100, 200, 300],
        'contract': ['A', 'B', 'A'],
        'effective': ['2020-01-01', '2020-03-03', '2020-05-30'],
        'expired': ['2020-12-31', '2021-04-30', '2022-04-01']}

df = pd.DataFrame(data)
overlaps(df, start='effective', end='expired', unique_key='contract')

         prices   contract     effective     expired      overlaps
   0        100   A            2020-01-01    2020-12-31   True
   1        200   B            2020-03-03    2021-04-30   False
   2        300   A            2020-05-30    2022-04-01   True
Parameters
  • df – dataframe

  • unique_key – column(s) that uniquely identify rows

  • start – column that defines start/effective date, default ‘effective_date’

  • end – column that defines end/expired date, default ‘expiry_date’

  • overlaps – default ‘overlaps’. Name of overlapping column containing True/False values

Returns

Return type

pandas dataframe with boolean based overlap column