Tengo dos marcos de datos de pandas y me gustaría mostrarlos en el cuaderno Jupyter.
Haciendo algo como:
display(df1)
display(df2)
Los muestra uno debajo del otro:
Me gustaría tener un segundo marco de datos a la derecha del primero. Hay una pregunta similar , pero parece que una persona está satisfecha con fusionarlos en un marco de datos o mostrar la diferencia entre ellos.
Esto no funcionará para mí. En mi caso, los marcos de datos pueden representar elementos completamente diferentes (elementos no comparables) y el tamaño de ellos puede ser diferente. Por tanto, mi principal objetivo es ahorrar espacio.
pandas
ipython-notebook
jupyter-notebook
Salvador Dalí
fuente
fuente
Respuestas:
Puede anular el CSS del código de salida. Utiliza
flex-direction: column
por defecto. Intente cambiarlo a en surow
lugar. He aquí un ejemplo:Por supuesto, puede personalizar aún más el CSS como desee.
Si desea apuntar solo a la salida de una celda, intente usar el
:nth-child()
selector. Por ejemplo, este código modificará el CSS de la salida de solo la quinta celda en el cuaderno:fuente
HTML('<style>{}</style>'.format(CSS))
sea la última línea de la celda (y no olvide usar el selector nth-child). Sin embargo, esto puede causar problemas con el formato, por lo que su solución es mejor. (+1)HTML('<style>.output {flex-direction: row;}</style>')
por simplicidadTerminé escribiendo una función que puede hacer esto:
Uso de ejemplo:
fuente
*args
lugar de solodf
? ¿Es porque puede tener múltiples entradas con*args
? 2) ¿Qué parte de su función hace que el segundo gl y el subsiguiente se agreguen a la derecha del primero en lugar de debajo de él? ¿Es la'table style="display:inline"'
parte? Gracias de nuevoStyler
s, noDataFrame
s. En este caso, utilice enhtml_str+=df.render()
lugar dehtml_str+=df.to_html()
.A partir de
pandas 0.17.1
la visualización de DataFrames se puede modificar directamente con métodos de estilo pandasPara mostrar dos DataFrames uno al lado del otro, debe usar
set_table_attributes
el argumento"style='display:inline'"
como se sugiere en ntg answer . Esto devolverá dosStyler
objetos. Para mostrar los marcos de datos alineados, simplemente pase su representación HTML combinada a través deldisplay_html
método de IPython.Con este método también es más fácil agregar otras opciones de estilo. A continuación, se explica cómo agregar un título, como se solicita aquí :
fuente
Combinando enfoques de gibbone (para establecer estilos y subtítulos) y stevi (agregando espacio) hice mi versión de la función, que genera marcos de datos de pandas como tablas una al lado de la otra:
Uso:
Salida:
fuente
Aquí está la solución de Jake Vanderplas que encontré el otro día:
Crédito: https://github.com/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/03.08-Aggregation-and-Grouping.ipynb
fuente
Mi solución simplemente crea una tabla en HTML sin ningún truco de CSS y la genera:
fuente
Esto agrega encabezados a la respuesta de @ nts:
fuente
mydisplay((df1,df2))
solo da endf.to_html(index=False) df.to_html(index=False)
lugar del contenido del marco de datos. Además, hay un signo '}' adicional en f'string '.Terminé usando HBOX
fuente
¡La respuesta de Gibbone funcionó para mí! Si desea espacio adicional entre las tablas, vaya al código que propuso y agréguelo
"\xa0\xa0\xa0"
a la siguiente línea de código.fuente
Decidí agregar alguna funcionalidad adicional a la elegante respuesta de Yasin, donde uno puede elegir tanto el número de columnas como de filas; los dfs adicionales se agregan al final. Además, uno puede elegir en qué orden llenar la cuadrícula (simplemente cambie la palabra clave de relleno a 'cols' o 'filas' según sea necesario)
salida de prueba
fuente
Extensión de la respuesta de antony Si desea limitar la visualización de tablas a un número de bloques por fila, use la variable maxTables.
fuente