diff_diff.create_event_time#

diff_diff.create_event_time(data, time_column, treatment_time_column, new_column='event_time')[source]

Create an event-time column relative to treatment timing.

Useful for event study designs where treatment occurs at different times for different units.

Parameters:
  • data (pd.DataFrame) – Panel data.

  • time_column (str) – Name of the calendar time column.

  • treatment_time_column (str) – Name of the column indicating when each unit was treated. Units with NaN or infinity are considered never-treated.

  • new_column (str, default="event_time") – Name of the new event-time column.

Returns:

DataFrame with event-time column added. Values are: - Negative for pre-treatment periods - 0 for the treatment period - Positive for post-treatment periods - NaN for never-treated units

Return type:

pd.DataFrame

Examples

>>> df = pd.DataFrame({
...     'unit': [1, 1, 1, 2, 2, 2],
...     'year': [2018, 2019, 2020, 2018, 2019, 2020],
...     'treatment_year': [2019, 2019, 2019, 2020, 2020, 2020]
... })
>>> df = create_event_time(df, 'year', 'treatment_year')
>>> df['event_time'].tolist()
[-1, 0, 1, -2, -1, 0]