web-dev-qa-db-fra.com

Comment afficher des informations complètes (non tronquées) sur les images de données au format HTML lors de la conversion de pandas dataframe en HTML?

J'ai converti un pandas dataframe en une sortie HTML à l'aide de la fonction DataFrame.to_html. Lorsque j'enregistre cela dans un fichier html séparé, le fichier affiche une sortie tronquée.

Par exemple, dans ma colonne TEXT,

df.head(1) montrera

Le film était un excellent effort ...

au lieu de

Le film était un excellent effort pour déconstruire les sentiments sociaux complexes qui prévalaient durant cette période.

Ce rendu est correct dans le cas d’un format convivial d’un bloc de données massif pandas, mais j’ai besoin d’un fichier html qui affiche les données tabulaires complètes contenues dans le cadre de données, c’est-à-dire dernier élément de texte plutôt que l'ancien extrait de texte.

Comment pourrais-je afficher les données textuelles complètes et non tronquées de chaque élément de la colonne TEXT de la version HTML de l'information? J'imagine que la table html devrait afficher de longues cellules pour afficher les données complètes, mais autant que je sache, seuls les paramètres de largeur de colonne peuvent être passés dans la fonction DataFrame.to_html.

141
Amy

Définissez l’option display.max_colwidth sur -1:

pd.set_option('display.max_colwidth', -1)

set_option docs

Par exemple, dans iPython, nous voyons que les informations sont tronquées à 50 caractères. Tout excès est ellipsisé:

enter image description here

Si vous définissez l'option display.max_colwidth, les informations seront entièrement affichées:

enter image description here

290
behzad.nouri
pd.set_option('display.max_columns', None)  

id (deuxième argument) peut afficher complètement les colonnes.

71
user7579768

Alors que pd.set_option('display.max_columns', None) définit le nombre maximum de colonnes affichées, l’option pd.set_option('display.max_colwidth', -1) définit la largeur maximale de chaque champ.

Pour les besoins de mon propos, j'ai écrit une petite fonction d'assistance qui permet d'imprimer complètement de grandes trames de données sans affecter le reste du code. Elle reformate également les nombres flottants et définit la largeur de l'affichage virtuel. Vous pouvez l'adopter pour vos cas d'utilisation.

def print_full(x):
    pd.set_option('display.max_rows', len(x))
    pd.set_option('display.max_columns', None)
    pd.set_option('display.width', 2000)
    pd.set_option('display.float_format', '{:20,.2f}'.format)
    pd.set_option('display.max_colwidth', -1)
    print(x)
    pd.reset_option('display.max_rows')
    pd.reset_option('display.max_columns')
    pd.reset_option('display.width')
    pd.reset_option('display.float_format')
    pd.reset_option('display.max_colwidth')
43
Karl Adler