Я считаю, что гораздо эффективнее явно поместить вас CSS в HTML документ.
with open("formatted.html", "w") as f:
f.write("<h2>Document Name</h2>")
df.to_html(f, escape=False, index=False)
f.write("""<style>
th {text-align: left;}
h2,table {font-family: Arial, Helvetica, sans-serif;}
table {font-size: 0.9em;border-collapse: collapse;}
</style>""")