def get_change_locs(df: pd.DataFrame, cli: int) -> Tuple[(List[int], List[float])]:
    'Get the index and directions from the df of the actions taken by the client'
    df['directions_str'] = df['directions'].astype(str)
    df['change'] = (df['directions_str'].shift(1, fill_value=df['directions_str'].head(1)) != df['directions_str'])
    index_change = list(df.loc[(df['change'] == True)].index.values)
    index_change = ([((cli - 1) * len(df))] + index_change)
    dirs = list(df['directions'][index_change].values)
    index_change = (index_change + [((cli * len(df)) - 1)])
    return (index_change, dirs)
Get the index and directions from the df of the actions taken by the client
def get_change_locs(df: pd.DataFrame, cli: int) -> Tuple[(List[int], List[float])]:
    
    df['directions_str'] = df['directions'].astype(str)
    df['change'] = (df['directions_str'].shift(1, fill_value=df['directions_str'].head(1)) != df['directions_str'])
    index_change = list(df.loc[(df['change'] == True)].index.values)
    index_change = ([((cli - 1) * len(df))] + index_change)
    dirs = list(df['directions'][index_change].values)
    index_change = (index_change + [((cli * len(df)) - 1)])
    return (index_change, dirs)