491 Stimmen

Wie kann ich vollständige (nicht abgeschnittene) DataFrame-Informationen in HTML anzeigen, wenn ich von Pandas DataFrame zu HTML konvertiere?

Ich habe ein Pandas-DataFrame mithilfe der Funktion DataFrame.to_html in eine HTML-Ausgabe umgewandelt. Wenn ich dies in einer separaten HTML-Datei speichere, wird die Datei gekürzte Ausgaben anzeigen.

Zum Beispiel in meiner TEXT-Spalte,

df.head(1) wird anzeigen

Der Film war ein ausgezeichneter Versuch...

anstatt von

Der Film war ein ausgezeichneter Versuch, die komplexen sozialen Stimmungen, die in dieser Zeit herrschten, zu dekonstruieren.

Diese Version ist in einem bildschirmfreundlichen Format eines riesigen Pandas-DataFrames in Ordnung, aber ich benötige eine HTML-Datei, die alle tabellarischen Daten im DataFrame vollständig anzeigt, also etwas, das das letztere Textelement anstelle des ersten Textausschnitts anzeigt.

Wie kann ich die kompletten, nicht gekürzten Textdaten für jedes Element in meiner TEXT-Spalte in der HTML-Version der Informationen anzeigen? Ich stelle mir vor, dass die HTML-Tabelle lange Zellen anzeigen müsste, um die kompletten Daten anzuzeigen, aber soweit ich verstehe, können nur Spaltenbreitenparameter an die DataFrame.to_html-Funktion übergeben werden.

800voto

behzad.nouri Punkte 68573

Setzen Sie die Option display.max_colwidth auf None (oder -1 vor Version 1.0):

pd.set_option('display.max_colwidth', None)

set_option Dokumentation

Zum Beispiel sehen wir in IPython, dass die Informationen auf 50 Zeichen gekürzt sind. Alles, was darüber hinausgeht, wird mit Ellipsen dargestellt:

Gekürztes Ergebnis

Wenn Sie die Option display.max_colwidth setzen, werden die Informationen vollständig angezeigt:

Nicht gekürztes Ergebnis

201voto

user7579768 Punkte 2027
pd.set_option('display.max_columns', None)  

id (zweites Argument) kann alle Spalten vollständig anzeigen.

178voto

Karl Adler Punkte 13785

Während pd.set_option('display.max_columns', None) die Anzahl der maximal angezeigten Spalten festlegt, setzt die Option pd.set_option('display.max_colwidth', -1) die maximale Breite jedes einzelnen Feldes.

Für meine Zwecke habe ich eine kleine Hilfsfunktion geschrieben, um riesige Datenrahmen vollständig anzuzeigen, ohne den restlichen Code zu beeinträchtigen. Sie reformattiert auch Fließkommazahlen und setzt die virtuelle Anzeigebreite. Sie können sie für Ihre Anwendungsfälle übernehmen.

def print_full(x):
    pd.set_option('display.max_rows', None)
    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', None)
    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')

94voto

iamyojimbo Punkte 3893

Jupyter-Benutzer

Immer wenn ich das nur für eine Zelle brauche, benutze ich das hier:

with pd.option_context('display.max_colwidth', None):
  display(df)

28voto

bitbang Punkte 1245

Versuchen Sie auch dies:

pd.set_option("max_columns", None) # alle Spalten anzeigen
pd.set_option('max_colwidth', None) # volle Breite der angezeigten Spalten anzeigen
pd.set_option("expand_frame_repr", False) # Spalten nebeneinander drucken, wie es sein soll

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X