Вы можете использовать понимание списка для репликации списка n
раз:
l = [df for _ in range(n)]
Хотя обратите внимание, что, как упоминалось в комментариях, это создает n
ссылок на один и тот же объект, поэтому изменение любого из них будет отражено во всех фреймах данных. Если это проблема (которая, скорее всего, такова), возьмите новый copy
на каждой итерации:
l = [df.copy() for _ in range(n)]