Стилизация Dataframe через Python - PullRequest
       19

Стилизация Dataframe через Python

0 голосов
/ 03 сентября 2018

Я пытаюсь отправить Outlook письмо через Python. Я импортирую некоторые данные из файлов Excel, используя dataframe, и после некоторой фильтрации отправляю их туда, где находится тело письма:

    body = '<html><body>'+df.to_html()+'</body></html>'

Я получаю таблицу, но ячейки не выровнены. Я не могу использовать justify='left/write', поскольку хочу, чтобы ячейки были выровнены по центру, а не только заголовки столбцов. Я использовал стили, но они тоже не работали:

df.style.set_properties(subset=df.columns,**{'width':'10em', 'text-align':'center'})\

Я тоже это пробовал, и это не сработало.

p=HTML(df.to_html(classes= 'table text-align:center'))

После просмотра похожих проблем я нашел другое решение:

s = df.style.set_properties(**{'text-align': 'center'})
s.render()

Однако из-за этого исчезает border таблицы. Так что я изменил ее:

s = df.style.set_properties(**{'text-align': 'center','border-color':'Black','border-width':'thin','border-style':'dotted'})

Это дает border клеткам. Но похоже, что each cell внутри индивидуума textbox,, а не table. Как мне это сделать?

Окончательный результат выглядит так:

1 Ответ

0 голосов
/ 24 апреля 2019

Вы можете сделать это без особого редактирования, вам нужно только добавить:

'border-collapse':'collapse'

html = df[['Column 1','Column 2',]].style.hide_index().set_properties(**{'font-size': '11pt','background-color': '#edeeef','border-color': 'black','border-style' :'solid' ,'border-width': '0px','border-collapse':'collapse'}).applymap(style1,subset = 'Column 1').applymap(Style2 ,subset = 'Column 2').render()

ПРИМЕЧАНИЕ: Вы можете игнорировать другие части этого фрагмента кода, только полезная вещь - - 'border-collapse': 'collapse'

Так что теперь граница внутри границы будет разрешена только к одной границе

A simple single line border

...