J'ai une fonction crawl qui entre un entier et génère un dataframe. Pour concaténer des dataframes df1, df2, df3, nous pouvons utiliser pandas.concat([df1, df2, df3]). Je voudrais vous demander qu'il existe un moyen efficace de concaténer df1,..., df17 sans écrire une longue liste df1 = crawl(1),..., df17 = crawl(17).

Merci beaucoup!

3
LAD 19 mai 2020 à 20:36

3 réponses

Meilleure réponse

Que diriez-vous:

pd.concat([crawl(i) for i in range(1,18)])
5
Quang Hoang 19 mai 2020 à 17:39

Tu peux le faire:

df_list = [crawl(i) for i in range(1,18)]

final_df = pd.concat(df_list)
2
Mayank Porwal 19 mai 2020 à 17:40

Vous pouvez également utiliser eval pour générer dynamiquement vos noms d'objets.

df_list = pd.concat([eval(f'df{i}') for i in range(1,18)])
1
Datanovice 19 mai 2020 à 17:45