从pandas数据框创建一个奇特的javascript表并将其嵌入到单个html文件中的最简单方法
我正在寻找一种方法来创建一个嵌入在单个html文件中的奇特的表(或者实际上是多个表),这超出了正常的pandas dataframe.to_html()所能做的 它应具有以下功能: -允许筛选(客户端) -允许数据透视(客户端) -具有其他格式选项(例如,确保数字正确对齐等) 将javascript模板嵌入html的最简单方法是什么,然后我可以使用pandas dataframe生成的序列化json进行输入,并将其嵌入到单个文件中。如果您有任何建议,我们将不胜感激。也许对您有用 下面是一个生成“demo.htm”文件的最小示例:从pandas数据框创建一个奇特的javascript表并将其嵌入到单个html文件中的最简单方法,javascript,python,html,pandas,Javascript,Python,Html,Pandas,我正在寻找一种方法来创建一个嵌入在单个html文件中的奇特的表(或者实际上是多个表),这超出了正常的pandas dataframe.to_html()所能做的 它应具有以下功能: -允许筛选(客户端) -允许数据透视(客户端) -具有其他格式选项(例如,确保数字正确对齐等) 将javascript模板嵌入html的最简单方法是什么,然后我可以使用pandas dataframe生成的序列化json进行输入,并将其嵌入到单个文件中。如果您有任何建议,我们将不胜感激。也许对您有用 下面是一个生成“
import os
import pandas as pd
import numpy as np
import jinja2
# Project specific global variables: paths, URIs, etc.
file_abspath = os.path.abspath(__file__)
file_basename = os.path.basename(file_abspath)
file_dirname = os.path.dirname(file_abspath)
def main():
"""The main function."""
os.chdir(file_dirname)
# Create a random dataframe.
df_cols = list('ABCD')
row_count = 12
df = pd.DataFrame(np.random.randint(0, 100, size=(
row_count, len(df_cols))), columns=df_cols)
# Generate HTML from template.
template = jinja2.Template("""<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Demo</title>
<link href="https://cdn.jsdelivr.net/npm/simple-datatables@latest/dist/style.css" rel="stylesheet" type="text/css">
<script src="https://cdn.jsdelivr.net/npm/simple-datatables@latest" type="text/javascript"></script>
</head>
<body>
{{ dataframe }}
</body>
<script defer type="text/javascript">
let myTable = new simpleDatatables.DataTable("#myTable");
</script>
</html>"""
)
output_html = template.render(dataframe=df.to_html(table_id="myTable"))
# Write generated HTML to file.
with open("demo.htm", "w", encoding="utf-8") as file_obj:
file_obj.write(output_html)
if __name__ == "__main__":
main()
导入操作系统
作为pd进口熊猫
将numpy作为np导入
进口金玉2
#项目特定的全局变量:路径、URI等。
file\u abspath=os.path.abspath(\uu file\uuu)
file\u basename=os.path.basename(file\u abspath)
file\u dirname=os.path.dirname(file\u abspath)
def main():
“”“主功能。”“”
chdir(文件名)
#创建一个随机数据帧。
df_cols=列表('ABCD')
行数=12
df=pd.DataFrame(np.random.randint(0,100,大小=(
行计数,len(df\u cols)),列=df\u cols)
#从模板生成HTML。
模板=jinja2。模板(“”)
演示
{{dataframe}}
让myTable=新的simpleDatatables.DataTable(“#myTable”);
"""
)
output\u html=template.render(dataframe=df.to\u html(table\u id=“myTable”))
#将生成的HTML写入文件。
打开(“demo.htm”、“w”,encoding=“utf-8”)作为文件\u obj:
文件_obj.write(输出_html)
如果名称=“\uuuuu main\uuuuuuuu”:
main()
我希望这会有所帮助,但它可能提供您要求的所有功能,也可能不提供您要求的所有功能,您可能需要查看datatables文档以了解更详细的信息。看起来您要求太多了。最简单的方法是使用一些javascript/css框架/库来处理所有这些事情。然后将正确的css样式或javascript处理程序传递给创建的表。是的,这就是我要寻找的。但那将是什么javascript处理程序和css样式呢?