import pandas as pd def slice_df(df, slice_positions): sliced_dfs = [df[:slice_positions[0]-1].copy(deep=True)] for i in range(len(slice_positions)-1): sliced_dfs.append(df[slice_positions[i]-1:slice_positions[i+1]-1].copy(deep=True)) sliced_dfs.append(df[slice_positions[-1]-1:].copy(deep=True)) return sliced_dfs