发布于2023-02-05 16:17 阅读(637) 评论(0) 点赞(5) 收藏(0)
I have the following code which outputs an HTML table:
import pandas as pd
df = pd.DataFrame({
'Color': ['Red', 'Red', 'Yellow', 'Yellow'],
'Fruit': ['Apple', 'Strawberry', 'Banana', 'Peach'],
'Weight': [5, 3, 8, 6]
})
df = pd.pivot(df, index='Color', columns='Fruit', values='Weight')
print(df.to_html())
I would like the output of each cell to reference its row (index) and column value. For example, I'd like a format function that looks like this:
def format_value(val, row, col):
return f"<a href=/{row}/{col}>{val}</a>"
However, I cannot figure out how to do this. This is what I've tried:
df = df.applymap(lambda x: format_value(x, row=x.index, col=x.name))
This returns an error:
AttributeError: 'float' object has no attribute 'index'
def format_cell(val, col, row):
def f(val):
return f"/{row}/{col}"
return f
format_map = {}
for col in df.columns:
format_map[col] = format_cell(col, df.index)
print(df.to_html(formatter=format_map))
However, df.index
returns all of the indexes, so there is no way to know which row specifically the formatter is referring to.
How can I create an HTML formatter which is aware of both the index and column for each value?
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/1895747/ed2ee614dd55de4cf898/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!