Не понимаю, как работает Pandas Styler для экспорта в Excel (.format, .set_properties) - PullRequest
0 голосов
/ 10 сентября 2018

У меня возникли проблемы с форматированием Pandas Dataframe после экспорта в Excel.Я прочитал https://pandas.pydata.org/pandas-docs/stable/style.html и попытался следовать примерам, но единственными, на которых я мог работать, были .apply и .applymap.

Мой код указан ниже.Я хотел бы сделать три вещи - установить цвет границы на черный, установить число в процентах и ​​применить красный к отрицательным числам, используя функции форматирования Pandas Styler, экспортируя его в файл Excel.Любая помощь или руководство будет принята с благодарностью.

import pandas as pd
import numpy as np
import xlsxwriter

np.random.seed(24)
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), columns=list('BCDE'))],
               axis=1)
df.iloc[0, 2] = np.nan

def color_negative_red(val):
    color = 'red' if val < 0 else 'black'
    return 'color: %s' %color

workbook = xlsxwriter.Workbook('example20.xlsx')
writer = pd.ExcelWriter(workbook.filename, engine = 'xlsxwriter')
workbook = writer.book

worksheet = workbook.add_worksheet('Sheet1')
writer.sheets['Sheet1'] = worksheet
worksheet.hide_gridlines(2)

df1 = df.style.set_properties(**{'border-color':'black'}) #this line of code doesn't work.
df2 = df1.style.format("{:.2%}").applymap(color_negative_red) #this line of code works only for the applymap(color_negative_red) section.
df2.to_excel(writer, sheet_name='Sheet1')

writer.save()
...