gpt4 book ai didi

pandas - 为什么使用 "to_excel"保存时 Pandas 数据框样式丢失?

转载 作者:行者123 更新时间:2023-12-03 14:33:08 24 4
gpt4 key购买 nike

this example to_excel方法应该保存带有背景颜色的 Excel 文件。但是,我保存的 Excel 文件中没有任何颜色。
我试图同时使用 openpyxlxlsxwriter引擎。在这两种情况下,Excel 文件都保存了,但单元格颜色/样式丢失了。

我可以读回文件并使用 openpyxl 重新格式化,但如果这个 to_excel方法应该有效,为什么不呢?

这是示例代码。

 import pandas as pd # version 0.24.2
dict = {'A': [1, 1, 1, 1, 1], 'B':[2, 1, 2, 1, 2], 'C':[1, 2, 1, 2, 1]}
df = pd.DataFrame(dict)
df_styled = df.style.apply(lambda x: ["background: #ffa31a" if x.iloc[0] < v else " " for v in x], axis=1)

df_styled
''' in my jupyter notebook, this displayed my dataframe with background color when condition is met, (all the 2s highlighted)'''

'''Save the styled data frame to excel using to_excel'''
df_styled.to_excel('example_file_openpyxl.xlsx', engine='openpyxl')
df_styled.to_excel('example_file_xlsxwriter.xlsx', engine='xlsxwriter')

最佳答案

我自己偶然发现了这个,据我所知,还不支持像这样导出到 excel。我已经调整了您的代码以将输出与文档中的 excel 相匹配。

这是excel方法的文档输出。

df.style.\
applymap(color_negative_red).\
apply(highlight_max).\
to_excel('styled.xlsx', engine='openpyxl')

这是您调整的代码:

import pandas as pd
dict = {'A': [1, 1, 1, 1, 1], 'B':[2,1,2,1,2], 'C':[1,2,1,2,1]}
df = pd.DataFrame(dict)

def highlight(df, color = "yellow"):

attr = 'background-color: {}'.format(color)
df_bool = pd.DataFrame(df.apply(lambda x: [True if x.iloc[0] < v else False for v in x],axis=1).apply(pd.Series),
index=df.index)
df_bool.columns =df.columns
return pd.DataFrame(np.where(df_bool, attr, ""),
index= df.index, columns=df.columns)
df.style. \
apply(highlight, axis=None).\
to_excel("styled.xlsx", engine="openpyxl")

在 highlight 函数中,我根据上面列表理解中应用的条件创建了一个 bool 数据框。然后,我根据此数据框的结果分配样式。

关于pandas - 为什么使用 "to_excel"保存时 Pandas 数据框样式丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55229090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com