проблема, кажется, с этими строками:
df_result = pandas.DataFrame(columns= ["filename, class, x, y, lbl, pred, c_pred"])
df_row = pandas.DataFrame([df.iloc[idx:idx+1, 0:1].values, df.iloc[idx:idx+1, 1:2].values, df.iloc[idx:idx+1, 2:3].values, df.iloc[idx:idx+1, 3:4].values, label, pred.item(), correct_prediction], columns= ["filename, class, x, y, lbl, pred, c_pred"])
вы даете все имена столбцов как одну строку, которая составляет только один столбецпопробуйте это
df_result = pandas.DataFrame(columns= ["filename", "class", "x", "y", "lbl", "pred", "c_pred"])
df_row = pandas.DataFrame([df.iloc[idx:idx+1, 0:1].values, df.iloc[idx:idx+1, 1:2].values, df.iloc[idx:idx+1, 2:3].values, df.iloc[idx:idx+1, 3:4].values, label, pred.item(), correct_prediction], columns= ["filename", "class", "x", "y", "lbl", "pred", "c_pred"])