Во-первых, я должен подчеркнуть, что необходимость сделать это наводит на мысль о проблеме в том, как были сгенерированы исходные кадры данных, и вы должны попытаться исправить это.
В Python есть способы сделать практически все, что выхочу.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * 100 * *
n_dataframes = 4
g = globals()
dataframes = [g[f'df{i}'] for i in range(1, n_dataframes + 1)]
result_df = pd.concat(dataframes)
print(result_df)
* * * * * * * * * * 100 * * *
Вывод:
Name Age
0 tom 10
1 nick 15
2 juli 14
0 tom 10
1 nick 15
2 juli 14
0 tom 10
1 nick 15
2 juli 14
0 tom 10
1 nick 15
2 juli 14
Вы можете выполнить дальнейшую обработку результата, например, позвонив reset_index
.
Другой альтернативой является использование eval
, которое решительно влияет на васне следует делать это, если вы действительно не знаете, что делаете «территории», потому что это позволяет выполнять произвольный код:
dataframes = [eval(f'df{i}') for i in range(1, n_dataframes + 1)]
Обратите внимание, что в приведенном выше коде используются f-строки ,которые синтаксис введен только в Python 3.6.Соответственно, если ваша версия Python ниже, замените f'df{i}'
на 'df{}'.format(i)
.