Есть ли способ отформатировать сводную таблицу и вставить ее в электронное письмо в python? - PullRequest
1 голос
/ 18 марта 2020

Я создал фрейм данных сводной таблицы (df_pivot), используя данные из другого фрейма данных. Я создаю df_ html = df_pivot.to_ html ().

. Затем я использую win32com (mail.HTMLBody = df_ html), чтобы отправить электронное письмо с сводной таблицей в теле. Эта функция работает нормально.

Я хочу иметь возможность отформатировать таблицу в электронном письме (выравнивание по центру, раскрасить ячейки и т. Д. c), чтобы выглядеть более презентабельно.

1 Ответ

3 голосов
/ 18 марта 2020

Вы можете взглянуть на pandas.Style, который позволит вам присвоить стиль вашему фрейму данных (т.е. цветам ячеек, выравниванию и т. Д. c.).

После того, как ваш фрейм данных стилизован, вы можете использовать их метод render(), чтобы собрать связанный HTML, и здесь вы go!

In [0]: df = pd.DataFrame([1])                                                                               

In [1]: html = df.style.set_properties(**{'background-color': 'black', 
    ...:                                  'color': 'lawngreen', 
    ...:                                  'border-color': 'white'}).render()
In [2]: print(html)                                             
Out[2]: <style type="text/css">
    #T_f804fbf6_6947_11ea_b4ca_8c8590b95ef2row0_col0 {
        background-color: black;
        color: lawngreen;
        border-color: white;
    }
</style>
<table id="T_f804fbf6_6947_11ea_b4ca_8c8590b95ef2">
    <thead>
        <tr>
            <th class="blank level0"></th>
            <th class="col_heading level0 col0">0</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th id="T_f804fbf6_6947_11ea_b4ca_8c8590b95ef2level0_row0" class="row_heading level0 row0">0</th>
            <td id="T_f804fbf6_6947_11ea_b4ca_8c8590b95ef2row0_col0" class="data row0 col0">1</td>
        </tr>
    </tbody>
</table>'
...