JS dataTables de pandas

Quiero usar pandas dataFrames con dataTables. No puedo averiguar cómo inicializar la tabla sin un ID.

¿Hay alguna forma de establecer el ID en la etiqueta de la tabla cuando llamo a df.to_html ()?

Podrías probar esto:

df.to_html(classes = 'my_class" id = "my_id') 

Es como una inyección de SQL básicamente.
La función to_html de Pandas usa comillas dobles alrededor de la clase. Puedes usar comillas simples para definir el argumento de las clases y poner comillas dobles dentro de ellas para terminar con la clase de los pandas. Luego coloque comillas dobles alrededor de su nombre de identificación, pero deje que pandas las cierre por usted. La salida será la siguiente:

 '...'

Espero que ayude.

No creo que este comportamiento esté disponible en to_html , pero una forma es simplemente insertarlo manualmente:

 In [11]: df = pd.DataFrame([1]) In [12]: s = df.to_html() In [13]: print (s[:7] + 'id="my_dfs_id" ' + s[7:]) 
0
0 1

Podrías poner este comportamiento en una función:

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

Ejemplo de uso: df_to_html_with_id(df, "hello") .

Tomé un enfoque ligeramente diferente y decidí iniciar la clase CSS, lo cual tuvo la ventaja de que todas las tablas de pandas se convirtieron en Tablas de datos. Puedes agregar otra clase si quieres un control más refinado con diferentes opciones

 $(document).ready(function(){ $('.dataframe').DataTable(); }); 

Aunque la respuesta aceptada funciona asombrosamente, esto es lo que hice para aplicar la identificación y también algunas clases para encabezar las tablas.

 html = df.to_html().replace(' 

Esto funciona porque to_html simplemente devuelve una cadena y podemos usar el método de reemplazar cadenas en Python para reemplazar cualquier parte con cualquier otra cosa (tenga en cuenta que solo usé la apertura '<'). Utilicé esto para incluir estilos a

ie. encabezados de la sección de la tabla!