def ffill_cols(df, cols_to_fill_name='Unn'): """ Forward fills column names. Propagate last valid column name forward to next invalid column. Works similarly to pandas ffill(). :param df: pandas Dataframe; Dataframe :param cols_to_fill_name: str; The name of the columns you would like forward filled. Default is 'Unn' as the default name pandas gives unnamed columns is 'Unnamed' :returns: list; List of new column names """ cols = df.columns.to_list() for i, j in enumerate(cols): if j.startswith(cols_to_fill_name): cols[i] = cols[i-1] return cols