python – 通过pandas xlsxwriter表循环

python – 通过pandas xlsxwriter表循环,第1张

概述我想使用pandas在excel表中创建一个条件格式.如果列A和B小于C列中的相应值,则列A和B应为红色.如何正确完成,以及为什么我的循环提前停止2行? import numpy as npimport pandas as pdd = pd.DataFrame(np.random.randint(1, 4, (15, 3)), columns = ['A', 'B', 'C'])writ 我想使用pandas在excel表中创建一个条件格式.如果列A和B小于C列中的相应值,则列A和B应为红色.如何正确完成,以及为什么我的循环提前停止2行?

import numpy as npimport pandas as pdd = pd.DataFrame(np.random.randint(1,4,(15,3)),columns = ['A','B','C'])writer = pd.ExcelWriter('c:\users\MYname\desktop\xl_loop.xlsx') # please change!d.to_excel(writer,'Sheet1',index = False)worksheet = writer.sheets['Sheet1']for i in (range(d.shape[0])):    worksheet.conditional_format(        'A{}:B{}'.format(i,i),{'type': 'icon_set','icon_style': '3_traffic_lights','icons': [{'criteria': '>','type': 'number','value': d.iloc[i,2]},{'criteria': '=',{'criteria': '<',2]} ]} )writer.save()
解决方法 在范围计算和定位中有几个一对一的错误,这就是为什么你的范围是2行短.

但是,没有必要为每一行创建条件格式.您可以为整个范围创建一个,如下所示:

import numpy as npimport pandas as pdd = pd.DataFrame(np.random.randint(1,'C'])writer = pd.ExcelWriter('xl_loop.xlsx')d.to_excel(writer,index = False)workbook  = writer.bookworksheet = writer.sheets['Sheet1']red_format = workbook.add_format({'bg_color': '#FFC7CE','Font_color': '#9C0006'})start_row = 1end_row   = start_row + d.shape[0] -1start_col = 0end_col   = 1worksheet.conditional_format(start_row,start_col,end_row,end_col,{'type': 'cell','criteria': '<','value': '$C2','format': red_format})writer.save()

输出:

总结

以上是内存溢出为你收集整理的python – 通过pandas xlsxwriter表循环全部内容,希望文章能够帮你解决python – 通过pandas xlsxwriter表循环所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1192016.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存