У меня есть фрейм данных:
import pandas as pd
import numpy as np
import random
rows=3
df = pd.DataFrame(
{'dtime': pd.date_range('2020-01-01', periods=rows, freq='15T'),
'Customer' : np.random.choice(['A', 'B', 'C'], size=rows),
'Amount': [random.randint(1, 1000000) for x in range(3)]
})
df
![enter image description here](https://i.stack.imgur.com/nw0Bk.png)
Я хотел бы экспортировать фрейм данных в html, но столбец Сумма должен быть с тысячами ("," not ".") разделитель и выравнивание по правому краю. Этот html должен быть без стилей css, потому что я отправлю его как тело в html электронном письме.
Если я выполню df.to_html()
, я получу:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>dtime</th>
<th>Customer</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>2020-01-01 00:00:00</td>
<td>C</td>
<td>302422</td>
</tr>
<tr>
<th>1</th>
<td>2020-01-01 00:15:00</td>
<td>A</td>
<td>9933</td>
</tr>
<tr>
<th>2</th>
<td>2020-01-01 00:30:00</td>
<td>C</td>
<td>843669</td>
</tr>
</tbody>
</table>
![enter image description here](https://i.stack.imgur.com/duPjV.png)
, что близко, но мне нужно выровнять вправо и разделитель тысяч. Для этого я попытался
df.to_html(formatters = {'Amount': lambda x: f'{x:,}'})
, что привело к некоторому улучшению:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>dtime</th>
<th>Customer</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>2020-01-01 00:00:00</td>
<td>C</td>
<td>302,422</td>
</tr>
<tr>
<th>1</th>
<td>2020-01-01 00:15:00</td>
<td>A</td>
<td>9,933</td>
</tr>
<tr>
<th>2</th>
<td>2020-01-01 00:30:00</td>
<td>C</td>
<td>843,669</td>
</tr>
</tbody>
</table>
![enter image description here](https://i.stack.imgur.com/hj39p.png)
Мне все еще нужно выравнивание по правому краю, которое я не могу получить с помощью df.to_html()
. Как я вижу, оба требования можно выполнить с помощью
df.style.format({'Amount':'{:,}'}).set_properties(subset='Amount', **{'text-align': 'right'}).render()
Но в этом случае у меня нет границы таблицы.
![enter image description here](https://i.stack.imgur.com/nceOx.png)
Как получить границу и для столбца Количество и разделитель тысяч одновременно выровнять по правому краю, используя только теги html?
Мне нужен способ поставить border="1" class="dataframe"
в тег <table>
.