我似乎无法在 Python 中更新数据框中的样式
I can't seem to update the style in a dataframe in Python
enter code here
首先,我不知道 Python 但我正在将它用于团队项目。我遵循了格子快速入门教程。我能够使用返回的 enter code here
数据创建数据框,使用它创建 html 并从中生成 pdf。我花了几个小时!现在我想对数据应用一些基本格式,比如如果金额为负则将其设为红色,右对齐金额字段。我已经编写了代码,但我没有使用 Jupyter Lab,我使用的是 atom。我已经看到需要 style.render() 才能获得更改的参考,但不知道该怎么做。
这是我的代码,在 pdf 中显示颜色没有变化
# Execute query selecting Transactions table in Plaid database
cur.execute("SELECT description, date, amount FROM transactions")
# Fetch rows
rows = cur.fetchall()
# Close cursor
cur.close()
# Close connection
con.close
# set negative amounts to red
def color_negative_red(amount):
color = 'red' if amount < 0 else 'black'
return 'color: %s' % color
# dataframe
df = pd.DataFrame (rows, columns = ["Transaction Description", "Date", "Amount"])
df.style.applymap(color_negative_red)
# convert data frame to <table> and display
html = df.to_html()
text_file = open("test.html", "w")
text_file.write(html)
text_file.close()
# output to a pdf
import pdfkit
pdfkit.from_file('test.html', 'out.pdf')
# open report and pdf in a browser
import webbrowser as wb
wb.open_new_tab('file://C:/Users/Carole/dev/Plaid/quickstart/python/out.pdf')
从测试沙箱环境生成的 pdf:
最后更改:
# 将负数设置为红色
def color_negative_red(s):
颜色 = 'red' 如果 s < 0 否则 'black'
return 'color: %s' % 颜色
html = df.style.applymap(color_negative_red).render()
pd.set_option('display.max_rows', 500)
# print DataFrame
print (df)
text_file = open("test.html", "w")
text_file.write(html)
text_file.close()
# output to a pdf
import pdfkit
pdfkit.from_file('test.html', 'out.pdf')
这是我最后的更改,使代码能够将金额字符串转换为小数
from re import sub
from decimal import Decimal
new = s.replace("$","").replace(",","")
value = Decimal(new)
color = 'red' if value < 0 else 'black'
return 'color: %s' % color
您评估了样式,但没有对其进行任何操作。您可以使用样式器的 .render()
方法来获得 HTML 输出。
html = df.style.applymap(color_negative_red).render()
请注意,这不是完整的 HTML 页面。它包含 HTML table 和样式信息,但没有 html、head 或 body 标签。
enter code here
首先,我不知道 Python 但我正在将它用于团队项目。我遵循了格子快速入门教程。我能够使用返回的 enter code here
数据创建数据框,使用它创建 html 并从中生成 pdf。我花了几个小时!现在我想对数据应用一些基本格式,比如如果金额为负则将其设为红色,右对齐金额字段。我已经编写了代码,但我没有使用 Jupyter Lab,我使用的是 atom。我已经看到需要 style.render() 才能获得更改的参考,但不知道该怎么做。
这是我的代码,在 pdf 中显示颜色没有变化
# Execute query selecting Transactions table in Plaid database
cur.execute("SELECT description, date, amount FROM transactions")
# Fetch rows
rows = cur.fetchall()
# Close cursor
cur.close()
# Close connection
con.close
# set negative amounts to red
def color_negative_red(amount):
color = 'red' if amount < 0 else 'black'
return 'color: %s' % color
# dataframe
df = pd.DataFrame (rows, columns = ["Transaction Description", "Date", "Amount"])
df.style.applymap(color_negative_red)
# convert data frame to <table> and display
html = df.to_html()
text_file = open("test.html", "w")
text_file.write(html)
text_file.close()
# output to a pdf
import pdfkit
pdfkit.from_file('test.html', 'out.pdf')
# open report and pdf in a browser
import webbrowser as wb
wb.open_new_tab('file://C:/Users/Carole/dev/Plaid/quickstart/python/out.pdf')
从测试沙箱环境生成的 pdf:
最后更改: # 将负数设置为红色 def color_negative_red(s): 颜色 = 'red' 如果 s < 0 否则 'black' return 'color: %s' % 颜色 html = df.style.applymap(color_negative_red).render()
pd.set_option('display.max_rows', 500)
# print DataFrame
print (df)
text_file = open("test.html", "w")
text_file.write(html)
text_file.close()
# output to a pdf
import pdfkit
pdfkit.from_file('test.html', 'out.pdf')
这是我最后的更改,使代码能够将金额字符串转换为小数
from re import sub
from decimal import Decimal
new = s.replace("$","").replace(",","")
value = Decimal(new)
color = 'red' if value < 0 else 'black'
return 'color: %s' % color
您评估了样式,但没有对其进行任何操作。您可以使用样式器的 .render()
方法来获得 HTML 输出。
html = df.style.applymap(color_negative_red).render()
请注意,这不是完整的 HTML 页面。它包含 HTML table 和样式信息,但没有 html、head 或 body 标签。