Estoy luchando con algo aparentemente muy simple. Tengo un marco de datos de pandas que contiene una cadena muy larga.
df = pd.DataFrame({'one' : ['one', 'two',
'This is very long string very long string very long string veryvery long string']})
Ahora, cuando trato de imprimir lo mismo, no veo la cadena completa, prefiero ver solo una parte de la cadena.
Intenté las siguientes opciones
- utilizando
print(df.iloc[2])
- utilizando
to_html
- utilizando
to_string
- Una de las respuestas de stackoverflow sugirió aumentar el ancho de la columna usando la opción de visualización de pandas, que tampoco funcionó.
- Tampoco entendí cómo
set_printoptions
me ayudaría.
Cualquier idea apreciada. ¡Parece muy simple, pero no puedo conseguirlo!
Úselo
pd.set_option('display.max_colwidth', -1)
para saltos de línea automáticos y celdas de varias líneas.Este es un gran recurso sobre cómo usar la pantalla de jupyters con pandas al máximo.
fuente
pd.set_option('display.max_colwidth', None)
para versiones más recientesOtro enfoque bastante simple es llamar a la función de lista:
No vale la pena mencionar, que no es bueno convencer para enumerar las columnas completas, pero para una línea simple, ¿por qué no?
fuente
Otra forma más fácil de imprimir toda la cadena es llamar
values
al marco de datos.La salida será
fuente
¿Es esto lo que pretendías hacer?
fuente
Simplemente agregue la siguiente línea a su código antes de imprimir.
Simplemente puede realizar los siguientes pasos para configurar otras opciones adicionales,
Puede cambiar las opciones para la función pandas max_columns de la siguiente manera para mostrar más columnas
(esto permite que se muestren 10 columnas, puede cambiar esto según lo necesite)
De esa manera, puede cambiar el número de filas que necesita mostrar de la siguiente manera para mostrar más filas
(esto permite imprimir 999 filas a la vez)
esto debería funcionar bien
Por favor, consulte el documento para cambiar más opciones / configuraciones para pandas
fuente
La forma en que a menudo trato la situación que usted describe es usar el
.to_csv()
método y escribir en stdout:Actualización: ¡ahora debería ser posible usarlo en
None
lugar desys.stdout
con un efecto similar!Esto debería volcar todo el marco de datos, incluida la totalidad de las cadenas. Puede usar los parámetros to_csv para configurar separadores de columnas, si el índice se imprime, etc. Sin embargo, será menos bonito que representarlo correctamente.
Publiqué esto originalmente en respuesta a la pregunta algo relacionada en Datos de salida de todas las columnas en un marco de datos en pandas
fuente
He creado una pequeña función de utilidad, esto funciona bien para mí
Puedo cambiar la longitud del ancho según mis requisitos, sin establecer ninguna opción de forma permanente.
fuente
Si está utilizando un cuaderno jupyter, también puede imprimir el marco de datos de pandas como tabla HTML, que imprimirá cadenas completas.
Salida
fuente