从pandas数据框创建一个奇特的javascript表并将其嵌入到单个html文件中的最简单方法

从pandas数据框创建一个奇特的javascript表并将其嵌入到单个html文件中的最简单方法,javascript,python,html,pandas,Javascript,Python,Html,Pandas,我正在寻找一种方法来创建一个嵌入在单个html文件中的奇特的表(或者实际上是多个表),这超出了正常的pandas dataframe.to_html()所能做的 它应具有以下功能: -允许筛选(客户端) -允许数据透视(客户端) -具有其他格式选项(例如,确保数字正确对齐等) 将javascript模板嵌入html的最简单方法是什么,然后我可以使用pandas dataframe生成的序列化json进行输入,并将其嵌入到单个文件中。如果您有任何建议,我们将不胜感激。也许对您有用 下面是一个生成“

我正在寻找一种方法来创建一个嵌入在单个html文件中的奇特的表(或者实际上是多个表),这超出了正常的pandas dataframe.to_html()所能做的

它应具有以下功能: -允许筛选(客户端) -允许数据透视(客户端) -具有其他格式选项(例如,确保数字正确对齐等)

将javascript模板嵌入html的最简单方法是什么,然后我可以使用pandas dataframe生成的序列化json进行输入,并将其嵌入到单个文件中。如果您有任何建议,我们将不胜感激。

也许对您有用

下面是一个生成“demo.htm”文件的最小示例:

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样式呢?