Ich möchte einen Pandas-Datenrahmen mit einem bestimmten Format unter Verwendung von print()
und IPython anzeigen display()
. Beispielsweise:
df = pd.DataFrame([123.4567, 234.5678, 345.6789, 456.7890],
index=['foo','bar','baz','quux'],
columns=['cost'])
print df
cost
foo 123.4567
bar 234.5678
baz 345.6789
quux 456.7890
Ich möchte das irgendwie zum Drucken zwingen
cost
foo $123.46
bar $234.57
baz $345.68
quux $456.79
Ohne die Daten selbst ändern oder eine Kopie erstellen zu müssen, ändern Sie einfach die Art und Weise, wie sie angezeigt werden.
Wie kann ich das machen?
cost
die einzige Float-Spalte oder gibt es andere Float-Spalten, mit denen nicht formatiert werden sollte$
?Antworten:
ergibt
Dies funktioniert jedoch nur, wenn jeder Float mit einem Dollarzeichen formatiert werden soll.
Wenn Sie andernfalls die Dollar-Formatierung nur für einige Floats wünschen, müssen Sie den Datenrahmen meiner Meinung nach vorab ändern (diese Floats in Zeichenfolgen konvertieren):
ergibt
quelle
with pd.option_context('display.float_format', '${:,.2f}'.format'):
'
vor der schließenden Klammer zum Kommentar von @AndreHolzner; Ansonsten funktioniert es wie ein Zauber!Wenn Sie den Datenrahmen nicht ändern möchten, können Sie einen benutzerdefinierten Formatierer für diese Spalte verwenden.
ergibt
quelle
pd.options.display.float_format = '${:,.2f}'.format
Ab Pandas 0.17 gibt es jetzt ein Styling-System, das im Wesentlichen formatierte Ansichten eines DataFrame mit Python- Formatzeichenfolgen bereitstellt :
welche anzeigt
Dies ist ein Ansichtsobjekt. Der DataFrame selbst ändert die Formatierung nicht, aber Aktualisierungen im DataFrame werden in der Ansicht angezeigt:
Es scheint jedoch einige Einschränkungen zu geben:
Das Hinzufügen neuer Zeilen und / oder Spalten an Ort und Stelle scheint zu Inkonsistenzen in der gestalteten Ansicht zu führen (fügt keine Zeilen- / Spaltenbeschriftungen hinzu):
das sieht ok aus aber:
Die Formatierung funktioniert nur für Werte, nicht für Indexeinträge:
quelle
Ähnlich wie bei Unutbu oben können Sie auch
applymap
Folgendes verwenden:quelle
df.to_csv()
, um sicherzustellen, dass alle Spalten in meiner.csv
Datei dieselbe "Ziffernbreite" haben. Vielen Dank!Ich benutze gerne pandas.apply () mit dem Python-Format ().
Es kann auch leicht mit mehreren Spalten verwendet werden ...
quelle
Sie können auch das Gebietsschema für Ihre Region festlegen und float_format so einstellen, dass ein Währungsformat verwendet wird. Dadurch wird automatisch das $ -Zeichen für die Währung in den USA festgelegt.
quelle
Zusammenfassung:
quelle