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
.
Définissez l’option display.max_colwidth
sur -1
:
pd.set_option('display.max_colwidth', -1)
Par exemple, dans iPython, nous voyons que les informations sont tronquées à 50 caractères. Tout excès est ellipsisé:
Si vous définissez l'option display.max_colwidth
, les informations seront entièrement affichées:
pd.set_option('display.max_columns', None)
id
(deuxième argument) peut afficher complètement les colonnes.
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')