Pandas使用函数突出显示带有条件的excel列

2024-09-29 06:35:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据框(Pre-_-Final-unu-DataFrame),我正在把它写到excel中。在

我需要在Excel中突出显示一行,如果该行在任何以“Result”开头的列上有“No Match”字。在

所以,我决定使用一个数组来了解需要突出显示哪一个。在

但是现在,我更喜欢使用一个函数来突出显示,因为它太慢了。 请帮我拿这个。在

简单地说,我正在用Pandas编写一个dataframe到excel中,它有一百万条记录,我希望只有当其中任何一个列中的名称以“Result”开头时没有匹配值时,才会用“Yellow”突出显示一行

excel中显示的预期结果如下所示

以a开头的输入代码数据帧:-在

import pandas as pd

data = {
     'ColA':[1, 1], 
     'ColB':[1, 1],
     'Result_1':['Match', 'Match'], 
     'ColA1':[1, 2], 
     'ColB1':[1, 1],
     'Result_2':['No Match', 'Match'],  
     }

Pre_Final_DataFrame = pd.DataFrame(data)

ResultColumns_df = Pre_Final_DataFrame.filter(like='Result_')
ResultColumns_df_false =ResultColumns_df[ResultColumns_df.values  == "No Match"]
RequiredRows_Highlight = ResultColumns_df_false.index.tolist()

writer = pd.ExcelWriter(OutputName,date_format='%YYYY-%mm-%dd',datetime_format='%YYYY-%mm-%dd')
Pre_Final_DataFrame.to_excel(writer,'Sheet1',index = False)
writer.save()

预期输出:

enter image description here


Tags: 数据nofalsedataframepandasdfdatamatch
1条回答
网友
1楼 · 发布于 2024-09-29 06:35:31

我们可以使用StyleFrame包将其读入excel表。在

import pandas as pd
from StyleFrame import StyleFrame, Styler

df = pd.read_excel("Your Excel Sheet")
sf = StyleFrame(df)

style = Styler(bg_color='yellow') 
for col in df:
     sf.apply_style_by_indexes(sf[sf[col]== 'No Match'],styler_obj=style)

sf.to_excel('test.xlsx').save()

这有助于我获得一个输出excel表,其中突出显示所有行,其中至少包含一个值为No Match的列。在

希望这有帮助。干杯

相关问题 更多 >