import pandas as pd def seg_zerobased (df, threshold): """ df : The dataframe that you want to proceed (make sure you use IS NOT NUll query); dataframe format/structure ______________________________________________ |DataSavedTime(datetime64) | Item/value(float) | | | | thres (default=0.1) : the threshold value for wave selection (in seconds) """ idx_group = df["DataSavedTime"].diff().dt.total_seconds().gt(threshold).cumsum() df["id"] = df.groupby(idx_group, as_index=False).ngroup() return df