Pandas 数据框到 excel,颜色格式使用 ExcelWriter 和左对齐
Pandas dataframe to excel with color formatting using ExcelWriter and left alignment
在另一个线程 上有类似问题的答案。但我希望使用 Pandas ExcelWriter
来学习这个
我有一个很大的 pandas 数据框 df
作为:
Sou ATC P25 P75 Avg
A 11 9 15 10
B 6.63 15 15 25
C 6.63 5 10 8
我想将此数据帧打印到 excel 文件,但我想将格式应用于 excel 文件的每一行,以便将以下规则应用于 ATC
中的单元格和Avg
列:
- 如果值小于 P25,则显示为红色
- 如果值大于 P75,则显示为绿色
- 如果值介于 P25 和 P75 之间,则颜色为黄色
excel中的示例显示如下:
请注意 左对齐 显示 column A
。我也有兴趣学习如何使用 ExcelWriter
将输出左对齐到 excel.
我现在使用的启动码是:
writer = pd.ExcelWriter(r'C:\outfile.xlx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='mysheet', index=False)
worksheet = writer.sheets['mysheet']
除了上面的代码,我不确定如何处理这个问题。
我会用 style
:
def hightlighter(x):
return np.select((x<df['P25'], x>df['P75']),
('background-color: red', 'background-color: green'),
'background-color: yellow')
def align(x):
return ['text-align:left']*len(x)
(df.style
.apply(hightlighter, subset=['ATC','Avg'])
.apply(align, subset=['Source'])
.to_excel(writer, sheet_name='mysheet', index=False, freeze_panes=(1,0))
)
在另一个线程 Pandas ExcelWriter
我有一个很大的 pandas 数据框 df
作为:
Sou ATC P25 P75 Avg
A 11 9 15 10
B 6.63 15 15 25
C 6.63 5 10 8
我想将此数据帧打印到 excel 文件,但我想将格式应用于 excel 文件的每一行,以便将以下规则应用于 ATC
中的单元格和Avg
列:
- 如果值小于 P25,则显示为红色
- 如果值大于 P75,则显示为绿色
- 如果值介于 P25 和 P75 之间,则颜色为黄色
excel中的示例显示如下:
请注意 左对齐 显示 column A
。我也有兴趣学习如何使用 ExcelWriter
将输出左对齐到 excel.
我现在使用的启动码是:
writer = pd.ExcelWriter(r'C:\outfile.xlx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='mysheet', index=False)
worksheet = writer.sheets['mysheet']
除了上面的代码,我不确定如何处理这个问题。
我会用 style
:
def hightlighter(x):
return np.select((x<df['P25'], x>df['P75']),
('background-color: red', 'background-color: green'),
'background-color: yellow')
def align(x):
return ['text-align:left']*len(x)
(df.style
.apply(hightlighter, subset=['ATC','Avg'])
.apply(align, subset=['Source'])
.to_excel(writer, sheet_name='mysheet', index=False, freeze_panes=(1,0))
)