Панды: формат языка не работает в style.format () - PullRequest
0 голосов
/ 04 марта 2019

Я хочу сделать pandas.Dataframe с локалью "de_DE.UTF-8", имеющей "," в качестве десятичной точки и "."как разделитель тысяч.Когда я просто запускаю locale.format, я получаю ожидаемые результаты.Но при добавлении того же выражения, что и в pandas formatter, в отображаемом html ничего не меняется (хотя ошибки не выдается).Пример кода:

import pandas
import locale

locale.setlocale(locale.LC_NUMERIC, 'de_DE.UTF-8')
print(locale.format('%.2f', 1000.245, True))
print(locale.format('%.2f', 10000000.22655, True))

df = pandas.DataFrame({'a': [1000.245, 10000000.22655]})
style = df.style.format(formatter=lambda x: f'{locale.format("%.2f", x, True)} €')
print(style.render())

Дает вывод:

1.000,25
10.000.000,23
<style  type="text/css" >
</style>  
<table id="T_f0ae1678_3e71_11e9_8f47_d0bf9ce00d56" > 
<thead>    <tr> 
        <th class="blank level0" ></th> 
        <th class="col_heading level0 col0" >a</th> 
    </tr></thead> 
<tbody>    <tr> 
        <th id="T_f0ae1678_3e71_11e9_8f47_d0bf9ce00d56level0_row0" class="row_heading level0 row0" >0</th> 
        <td id="T_f0ae1678_3e71_11e9_8f47_d0bf9ce00d56row0_col0" class="data row0 col0" >1000.25 €</td> 
    </tr>    <tr> 
        <th id="T_f0ae1678_3e71_11e9_8f47_d0bf9ce00d56level0_row1" class="row_heading level0 row1" >1</th> 
        <td id="T_f0ae1678_3e71_11e9_8f47_d0bf9ce00d56row1_col0" class="data row1 col0" >10000000.23 €</td> 
    </tr></tbody> 
</table>

Панды настраивают свои собственные locale?Или чего мне не хватает?Thx

...