J'ai du mal avec la chose apparemment très simple: j'ai une trame de données pandas contenant une très longue chaîne.
df = pd.DataFrame({'one' : ['one', 'two',
'This is very long string very long string very long string veryvery long string']})
Maintenant, quand j'essaie d'imprimer la même chose, je ne vois pas la chaîne complète, je ne vois plutôt qu'une partie de la chaîne.
J'ai essayé les options suivantes
- en utilisant
print(df.iloc[2])
- en utilisant
to_html
- en utilisant
to_string
- L'une des réponses de stackoverflow a suggéré d'augmenter la largeur de la colonne en utilisant l'option d'affichage pandas, qui ne fonctionnait pas non plus.
- Je n'ai pas non plus compris comment
set_printoptions
va m'aider.
Toutes les idées appréciées. Ça a l'air très simple, mais pas en mesure de l'obtenir!
À utiliser
pd.set_option('display.max_colwidth', -1)
pour les sauts de ligne automatiques et les cellules multilignes.Ceci est une excellente ressource sur la façon d'utiliser au maximum l'affichage des jupyters avec les pandas.
la source
pd.set_option('display.max_colwidth', None)
pour les versions plus récentesUne autre approche assez simple consiste à appeler la fonction de liste:
Cela ne vaut pas la peine de mentionner, ce n'est pas bon au couvent de lister toutes les colonnes, mais pour une simple ligne - pourquoi pas
la source
Un autre moyen plus simple d'imprimer la chaîne entière est d'appeler
values
le dataframe.La sortie sera
la source
Est-ce ce que vous vouliez faire?
la source
Ajoutez simplement la ligne suivante à votre code avant de l'imprimer.
Vous pouvez simplement suivre les étapes suivantes pour définir d'autres options supplémentaires,
Vous pouvez modifier les options de la fonctionnalité pandas max_columns comme suit pour afficher plus de colonnes
(cela permet d'afficher 10 colonnes, vous pouvez changer cela selon vos besoins)
Comme ça, vous pouvez modifier le nombre de lignes car vous devez afficher comme suit pour afficher plus de lignes
(cela permet d'imprimer 999 lignes à la fois)
cela devrait bien fonctionner
Veuillez consulter le document pour modifier plus d'options / paramètres pour les pandas
la source
La façon dont je gère souvent la situation que vous décrivez est d'utiliser la
.to_csv()
méthode et d'écrire dans stdout:Mise à jour: il devrait maintenant être possible d'utiliser simplement
None
au lieu desys.stdout
avec un effet similaire!Cela devrait vider l'ensemble de la trame de données, y compris l'intégralité de toutes les chaînes. Vous pouvez utiliser les paramètres to_csv pour configurer les séparateurs de colonnes, si l'index est imprimé, etc. Ce sera cependant moins joli que de le rendre correctement.
J'ai posté ceci à l'origine en réponse à la question quelque peu liée à la sortie des données de toutes les colonnes d'un dataframe dans pandas
la source
J'ai créé une petite fonction utilitaire, cela fonctionne bien pour moi
Je peux changer la longueur de la largeur selon mes besoins, sans définir aucune option de manière permanente.
la source
Si vous utilisez jupyter notebook, vous pouvez également imprimer le dataframe pandas sous forme de tableau HTML, qui imprimera des chaînes complètes.
Production
la source