рассмотрите возможность разделения вашего кода на отдельные функции, например, так:
def get_data_from_csv(filepath):
optionNameCSI = filepath.split("\\")[-1].split('.')[0]
try:
df = pd.read_csv(filepath, engine='c')
# do stuff ...
return df
except (IndexError, KeyError) as e:
return
, тогда вы можете использовать понимание списка, чтобы собрать все данные в списке, как предложили люди выше
filepaths = glob.iglob(r'W:\data\{0}\option\**\**\**.csv'.format(188), recursive=True)
result = [get_data_from_csv(filepath) for filepath in filepaths]
result = [r for r in result if r is not None] # remove 'None' values
затем объедините данные, используя pd.concat
df = pd.concat(result)