我是新来使用Pandas造型,所以我发现这一切都很困难,但我试图采取Pandas数据框架。然后,我想应用表样式的颜色tr:nth-child(odd)
行某种颜色。
我看到set_table_styles()
的代码采用了CSS选择器和Poperties的字典来定义这些样式。
我假设我想要的表的选择器是'selector':'tr:nth-child(old)'
,props是'props'
:['background': 'blue']
然而,这不会产生条带化结果,并且无法解决这个问题。我已经成功地与一些其他风格的选择工作,但不是这一个特别。
最后,我需要呈现的HTML,因为即时通讯插入到一个电子邮件产生的布微软Outlook。
任何帮助托特实现这一目标将不胜感激。下面是一个片段的文字,产生我的电子邮件,但现在表行剥离
myMessage = """<HTML>
segmentStuffHere
<HTML>"""
segmentParts = ""
for seg, dF in segmentDataFrames.items():
html = (
dF.style
.set_table_styles([{'selector': 'tr:nth-child(odd)', 'props': [('background', '#FFF')]}])
.render()
)
myMessagePart = """
<BODY>
<font color="black">
The break-out by "{segment}" is as follows:<br><br>
{htmlTable}
<br>
</font>
</BODY>
""".format(htmlTable=html, segment=seg)
segmentParts += myMessagePart
myMessage = myMessage.replace('segmentStuffHere', segmentParts)
print(myMessage)
# print(myMessage)
outlook = Dispatch("Outlook.Application")
#Contruct a message Body found above ^
# Found the below syntax is needed to build outlook object to send message.
msg = outlook.CreateItem(0)
msg.To = '{}@email.com'.format('user')
# msg.CC = emailCC
msg.Subject = 'Segment Test'
msg.GetInspector
index = msg.HTMLbody.find('>', msg.HTMLbody.find('<body'))
msg.HTMLbody = msg.HTMLbody[:index + 1] + myMessage + msg.HTMLbody[index + 1:]
# msg.HTMLBody = myMessage
msg.Display(False)
# msg.BodyFormat = '3'
msg.Send()
print('Email Sent!')```
1条答案
按热度按时间sg3maiej1#
在我的代码中前进并解决新问题时。我偶然发现了一个完美的解决方案。我能够编写一个函数并使用.apply()函数按行执行此操作。