Я хотел бы объединить панды df.style
объекты, которые используют следующие методы - df.style.background_gradient
и df.style.bar
и экспортировать результат в HTML.
Я успешен, когда у меня есть отдельные объекты.Вот пример фрейма данных:
df = pd.DataFrame(np.random.randn(15).reshape(5, 3))
Затем я могу передать это различным методам стиля:
# Use method "background_gradient"
styled_df_a = df.style.background_gradient(subset=[0, 1],
low=0, high=0.5,
cmap="YlGnBu")
# Use method "bar"
styled_df_b = df.style.bar(subset=[2], align='mid',
color=['#d65f5f', '#5fba7d'])
Впоследствии я экспортирую каждую из стилизованных таблиц в html:
# Export styled table a to html
html = styled_df_a.render()
with open("df_a.html","w") as fp:
fp.write(html)
# Export styled table b to html
html = styled_df_b.render()
with open("df_b.html","w") as fp:
fp.write(html)
Поэтому у меня есть 2 html-таблицы в стиле.Однако я хотел бы объединить эти 2 метода в таблицу в стиле html, чтобы столбцы 1-2 имели стиль background_gradient
, а столбец 3 - стиль bar
.
Я пробовал это:
styled_df_c = styled_df_a.style.bar(subset=[2], align='mid',
color=['#d65f5f', '#5fba7d'])
Это не работает из-за следующей ошибки:
AttributeError: 'Styler' object has no attribute 'style'
Есть ли способ сделать это другими способами?Я попытался поэкспериментировать с методом style.apply
панд, но получил ошибку, аналогичную описанной выше.