Leyendo archivos CSV en un bucle usando pandas, luego concatenándolos

Tengo 10 archivos csv, llamados data_run1_all.csv , data_run2_all.csv , …, data_run10_all.csv . Los archivos CSV tienen las mismas columnas, pero diferentes filas.

Ahora los estoy importando uno por uno a df_run1 , df_run2 , …, df_run10 .

¿Puedo usar un bucle para importarlos? Algo como: i=1 to 10, df_runi=pandas.read_csv('data_runi_all.csv') .

Lo pregunto porque el análisis de datos, el trazado, etc. para cada dataframe también son iguales. Todo el código para cada cuadro de datos se repite 10 veces. Si puedo usar un bucle para hacer 10 veces, el código será mucho más corto y legible.

Lea sus CSV en un bucle y llame a pd.concat :

 file_name = 'data_run{}_all.csv' df_list = [] for i in range(1, 11): df_list.append(pd.read_csv(file_name.format(i)) df = pd.concat(df_list) 

Alternativamente, podría construir la lista dentro de una comprensión:

 file_name = 'data_run{}_all.csv' df = pd.concat([pd.read_csv(file_name.format(i)) for i in range(1, 11)]) 

Necesitas hacer df_run una lista. Podrías hacer algo como esto:

 df_run = [] for i in range(1,10): df_run.append(pandas.read_csv('data_run{0}_all.csv'.format(i)) for df in df_run: // Do your processing 

O haga todo en un solo bucle y evite tener la lista.