Maison >développement back-end >Tutoriel Python >Comment formater le DataFrame Pandas des flotteurs avec une chaîne personnalisée pour les colonnes ?
Pandas fournit un moyen pratique d'afficher des données tabulaires. Cependant, vous devrez parfois personnaliser le format d'affichage pour améliorer la lisibilité ou répondre à des exigences de présentation spécifiques. Cet article présente des méthodes de formatage de colonnes contenant des nombres à virgule flottante dans le format souhaité à l'aide de print() et IPython display(), sans altérer les données d'origine.
Pour appliquer uniformément un format souhaité à toutes les colonnes à virgule flottante d'un DataFrame, utilisez l'option pd.options.display.float_format. Par exemple, pour afficher des valeurs numériques sous forme de chaînes au format monétaire avec un signe dollar et deux décimales, vous pouvez utiliser le code suivant :
import pandas as pd pd.options.display.float_format = '${:,.2f}'.format df = pd.DataFrame([123.4567, 234.5678, 345.6789, 456.7890], index=['foo','bar','baz','quux'], columns=['cost']) print(df)
Ce code produira le résultat suivant :
cost foo 3.46 bar 4.57 baz 5.68 quux 6.79
Si vous avez besoin de différents formats pour différentes colonnes ou si vous souhaitez conserver des types de données spécifiques, vous pouvez modifier le DataFrame lui-même. Le code suivant remplace la colonne spécifiée par sa représentation sous forme de chaîne dans un format personnalisé :
import pandas as pd df = pd.DataFrame([123.4567, 234.5678, 345.6789, 456.7890], index=['foo','bar','baz','quux'], columns=['cost']) df['foo'] = df['cost'] df['cost'] = df['cost'].map('${:,.2f}'.format) print(df)
La sortie résultante sera un DataFrame avec la colonne "foo" formatée en tant que devise et la colonne "cost" restant en tant que type numérique :
cost foo foo 3.46 123.4567 bar 4.57 234.5678 baz 5.68 345.6789 quux 6.79 456.7890
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!