Il y a une différence entre
- le contenu d'une cellule de dataframe (une valeur binaire) et
- sa présentation (l'afficher) pour nous, humains.
La question est donc: comment parvenir à la présentation appropriée de mes données sans changer les données / types de données eux-mêmes?
Voici la réponse:
- Si vous utilisez le notebook Jupyter pour afficher votre dataframe, ou
- si vous voulez atteindre une présentation sous la forme d'un fichier HTML (même avec de nombreux superflus préparés
id
et des class
attributs pour un style CSS ultérieur - vous pouvez ou vous ne pouvez pas les utiliser),
utilisez le style .Le style ne change pas les données / types de données des colonnes de votre dataframe.
Maintenant, je vous montre comment y accéder dans le notebook Jupyter - pour une présentation sous forme de fichier HTML, voir la note à la fin de la question.
Je suppose que votre colonne a DOB
déjà le typedatetime64
(vous avez montré que vous savez comment y accéder). J'ai préparé un dataframe simple (avec une seule colonne) pour vous montrer un style de base:
DOB
0 2019-07-03
1 2019-08-03
2 2019-09-03
3 2019-10-03
DOB
0 07/03/2019
1 08/03/2019
2 09/03/2019
3 10/03/2019
DOB
0 03-07-2019
1 03-08-2019
2 03-09-2019
3 03-10-2019
Faites attention!
L'objet renvoyé n'est PAS un dataframe - c'est un objet de la classe Styler
, alors ne le réattribuez pas à df
:
Ne faites pas ça:
df = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")}) # Don´t do this!
(Chaque dataframe a son objet Styler accessible par sa .style
propriété, et nous avons changé cet df.style
objet, pas le dataframe lui-même.)
Questions et réponses:
Q: Pourquoi votre objet Styler (ou une expression le renvoyant) utilisé comme dernière commande dans une cellule de bloc-notes Jupyter affiche votre tableau (stylisé) et non l'objet Styler lui-même?
R: Parce que chaque objet Styler a une méthode de rappel ._repr_html_()
qui renvoie un code HTML pour le rendu de votre dataframe (sous la forme d'un joli tableau HTML).
Jupyter Notebook IDE appelle cette méthode automatiquement pour rendre les objets qui en ont.
Remarque:
Vous n'avez pas besoin du notebook Jupyter pour le style (c'est-à-dire pour une sortie agréable d'une trame de données sans changer ses données / types de données ).
Un objet Styler a également une méthode render()
, si vous souhaitez obtenir une chaîne avec le code HTML (par exemple pour publier votre dataframe formaté sur le Web, ou simplement présenter votre tableau au format HTML):
df_styler = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")})
HTML_string = df_styler.render()