The to_csv method of pandas does not preserve the order of columns. It chooses to alphabetically arrange the columns in CSV. This is a bug and has been reported and is supposed
Try with:
df.to_csv(file_name, sep=',', encoding='utf-8', header=True, columns=["Col1","Col2","Col3","Col4"])
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html