Это будет работать:
df2 = pd.DataFrame()
for i in range(len(df.columns)):
df2 = df2.append(df.iloc[:,0:i+1],sort = True)
Поскольку повторяется одно и то же имя столбца, очевидно, что df не будет иметь одно и то же имя столбца дважды и, следовательно, будет продолжать добавлять строки