asd*_*fjk 3 python excel dataframe pandas
目前我像这样保存我的数据框
writer = ExcelWriter('test.xlsx')
test_df.to_excel(writer,'Sheet1')
writer.save()
Run Code Online (Sandbox Code Playgroud)
结果excel文件看起来像这样
cus 1 abc 2 jbd 3 lkl ...
1 col v v v v v ...
2 v v col v v v ...
3 v v v v col v ...
Run Code Online (Sandbox Code Playgroud)
我需要的是,当 cus value == header value 时,该单元格应具有绿色背景。在上面的示例中,所有值为“col”的单元格都应设置为绿色背景。我怎样才能做到这一点?
Pandas 0.20.0 中Excel output for styled DataFrames有一个新功能 -:
styled = (df.style
.applymap(lambda v: 'background-color: %s' % 'green' if v=='col' else ''))
styled.to_excel('d:/temp/styled.xlsx', engine='openpyxl')
Run Code Online (Sandbox Code Playgroud)
结果:
您可以使用 StyleFrame 库来实现这一点。
安装
pip install styleframe
Run Code Online (Sandbox Code Playgroud)
可以在此处找到该库的文档。
尝试以下代码以检查它是否可以满足您的目的。
import pandas as pd
from StyleFrame import StyleFrame, Styler
df = pd.DataFrame(" Your Dataframe ")
sf = StyleFrame(df)
style = Styler(bg_color='green')
for col_name in df.columns:
sf.apply_style_by_indexes(sf.loc[sf['col_name']== col_name ], cols_to_style=col_name,
styler_obj=style)
sf.to_excel('test.xlsx').save()
Run Code Online (Sandbox Code Playgroud)
干杯!