来自pandas的JS dataTables

Mic*_* WS 13 python datatables pandas

我想将pandas dataFrames与dataTables一起使用.我无法弄清楚如何在没有id的情况下初始化表.

当我调用df.to_html()时,有没有办法在table标签中设置id?

Kev*_*hop 19

你可以试试这个:

df.to_html(classes = 'my_class" id = "my_id')
Run Code Online (Sandbox Code Playgroud)

它基本上就像一个SQL注入.
Pandas的to_html函数在类周围使用双引号.您可以使用单引号来定义classes参数,并在其中加入双引号以结束pandas的类.然后在你的id名称周围打开双引号,但让pandas为你关闭那些双引号.输出将如下:

'<table border="1" class="dataframe my_class" id = "my_id">...'
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • 那是一个美丽的技巧! (2认同)

And*_*den 6

我不认为这种行为可用to_html,但一种方法是手动插入它:

In [11]: df = pd.DataFrame([1])

In [12]: s = df.to_html()

In [13]: print (s[:7] + 'id="my_dfs_id" ' + s[7:])
<table id="my_df_id" border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>0</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>0</strong></td>
      <td> 1</td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

您可以将此行为放入函数中:

def df_to_html_with_id(df, id):
    s = df.to_html()
    return s[:7] + 'id="%s" ' % id + s[7:]
Run Code Online (Sandbox Code Playgroud)

用法示例:df_to_html_with_id(df, "hello").