如何使用Python对备用行进行颜色编码,但若某些列值相同,则行的颜色将与前一行相同

如何使用Python对备用行进行颜色编码,但若某些列值相同,则行的颜色将与前一行相同,python,xlsxwriter,Python,Xlsxwriter,我有一个制表符分隔的文件,我添加了一些格式并写入Excel文件。一个请求是对备用行进行颜色编码,但文件中有一个doc\u no列,对于具有相同doc\u no的行,这些行将具有相同的颜色。如以下示例所示: 我有这样一个例子:交替行是用颜色编码的,重复的文档号是高亮显示的(我在示例中使用的颜色是为了说明,可能与代码中的颜色不匹配)。我不知道如何得到要求的结果,并将感谢任何帮助 我的代码: import pandas as pd import numpy as np import time i

我有一个制表符分隔的文件,我添加了一些格式并写入Excel文件。一个请求是对备用行进行颜色编码,但文件中有一个doc\u no列,对于具有相同doc\u no的行,这些行将具有相同的颜色。如以下示例所示:

我有这样一个例子:交替行是用颜色编码的,重复的文档号是高亮显示的(我在示例中使用的颜色是为了说明,可能与代码中的颜色不匹配)。我不知道如何得到要求的结果,并将感谢任何帮助

我的代码:

import pandas as pd
import numpy as np
import time

infile = (r'C:\..\test.txt')

#read in tab delimited text file into dataframe
df = pd.read_csv(infile, sep='\t', dtype = str, encoding='cp1252')

#delete columns with all null values
df.dropna(how='all', axis='columns', inplace=True)

#Get Date Range into variable date_range to print as HEADER and remove column from dataframe
date_range = df.iloc[0,0]
df.drop('Date Range', axis=1, inplace=True)

#replace NAN with empty string
df = df.replace(np.nan, '', regex=True)

dtstamp = time.strftime('%m-%d-%Y')

#Writing dataframe to Excel
writer = pd.ExcelWriter(r'C:\..\TEST-'+dtstamp+'.xlsx', engine = 'xlsxwriter')
df.to_excel(writer, sheet_name = 'Sheet1', startrow=2, index=False)

workbook = writer.book
ws = writer.sheets['Sheet1']

#--------------------------color code rows-------------------------------------
rcolor1 = workbook.add_format({'bg_color': '#D3D3D3'})
rcolor2 = workbook.add_format({'bg_color': '#FFE4E1'})                                     

for row in range(3,(len(df.index)+3), 2):
    ws.set_row(row,cell_format=rcolor2)

ws.conditional_format('B3:B'+str(len(df.index)+3),{'type': 'duplicate', 'format': rcolor1})
    
...

writer.save()
workbook.close()