tutorial tablas seleccionar recorrer notebook graficar filtrar espaƱol documentacion datos data con columnas python string pandas options

tablas - seleccionar columnas pandas python



Imprime una cadena muy larga completamente en el marco de datos de pandas (6)

¿Es esto lo que querías hacer?

In [7]: x = pd.DataFrame({''one'' : [''one'', ''two'', ''This is very long string very long string very long string veryvery long string'']}) In [8]: x Out[8]: one 0 one 1 two 2 This is very long string very long string very... In [9]: x[''one''][2] Out[9]: ''This is very long string very long string very long string veryvery long string''

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 intento imprimir lo mismo, no veo la cadena completa, sino que solo veo parte de la cadena.

Intenté las siguientes opciones

  • utilizando print(df.iloc[2])
  • usando to_html
  • usando to_string
  • Una de las respuestas de stackoverflow sugirió aumentar el ancho de columna mediante la opción de visualización de pandas, que tampoco funcionó.
  • Tampoco entendí cómo set_printoptions me ayudará.

Cualquier idea apreciada. ¡Parece muy simple, pero no puede obtenerlo!


La forma en que a menudo trato con la situación que describe es usar el método .to_csv() y escribir en stdout:

import sys df.to_csv(sys.stdout)

Actualización: ¡ahora debería ser posible usar None lugar de sys.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 columna, ya sea que se imprima el índice, 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


Otra forma más fácil de imprimir toda la cadena es llamar values en el marco de datos.

df = pd.DataFrame({''one'' : [''one'', ''two'', ''This is very long string very long string very long string veryvery long string'']}) print(df.values)

La salida será

[[''one''] [''two''] [''This is very long string very long string very long string veryvery long string'']]


Otro enfoque bastante simple es llamar a la función de lista:

list(df[''one''][2]) # output: [''This is very long string very long string very long string veryvery long string'']

No vale la pena mencionar que no es bueno convencer para enumerar las columnas completas, sino para una línea simple: ¿por qué no?


Puede usar options.display.max_colwidth para especificar que desea ver más en la representación predeterminada:

In [2]: df Out[2]: one 0 one 1 two 2 This is very long string very long string very... In [3]: pd.options.display.max_colwidth Out[3]: 50 In [4]: pd.options.display.max_colwidth = 100 In [5]: df Out[5]: one 0 one 1 two 2 This is very long string very long string very long string veryvery long string

Y, de hecho, si solo desea inspeccionar el valor único, accediendo a él (como un escalar, no como una fila como lo hace df.iloc[2] ) también verá la cadena completa:

In [7]: df.iloc[2,0] # or df.loc[2,''one''] Out[7]: ''This is very long string very long string very long string veryvery long string''


Utilice pd.set_option(''display.max_colwidth'', -1) para los saltos de línea automáticos y las celdas de varias líneas.

This es un gran recurso sobre cómo usar jupyters display con pandas al máximo.