У меня была такая же проблема, я посмотрел на реализацию функции format
в классе pandas.io.formats.style.Styler
и реализовал похожую построчную функцию:
def format_row_wise(styler, formatter):
for row, row_formatter in formatter.items():
row_num = styler.index.get_loc(row)
for col_num in range(len(styler.columns)):
styler._display_funcs[(row_num, col_num)] = row_formatter
return styler
Пример :
df = pandas.DataFrame(
{
'Limit': [1.20, 0.82, 0.38, 0.17],
'Status': [1.21216, 0.63075, 0.376988, 0.126987],
'Warning': [1.11, 0.75, 0.35, 0.14],
'3M AVG': [1.21235, 0.593259, 0.376988, 0.12461]
},
index=['VAR1', 'VAR2', 'VAR3', 'VAR4']
)
formatters = {"VAR1":lambda x: f"{x:.2f}", "VAR4": lambda x: f"{x:.2f}"}
styler = format_row_wise(df.style, formatters)
styler.render()
Это работает для меня:)
Примечание :
- Я реализовал только форматирование dict!
- Формат должен быть задан как функция (здесь: лямбда)
Надеюсь, это поможет вам выбрать правильный путь ...