Escape special characters in to_latex() output

Some characters have special meaning in latex: & % $ # _ { } ~ ^ \.  When a dataframe contains a special character (as part of an index label, for example), to_latex() spits out invalid latex.