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.

17voto

Benjamin Ziepert Punkte 758

Zeigen Sie das gesamte DataFrame für eine bestimmte Zelle an:

import pandas as pd
with pd.option_context('display.max_colwidth', None,
                       'display.max_columns', None,
                       'display.max_rows', None):
    display(df)

Die obige Methode kann mit weiteren Optionen erweitert werden.

Aktualisierte Hilfsfunktion von Karl Adler:

def display_full(x):
    with pd.option_context('display.max_rows', None,
                           'display.max_columns', None,
                           'display.width', 2000,
                           'display.float_format', '{:20,.2f}'.format,
                           'display.max_colwidth', None):
        display(x)

Ändern Sie die Anzeigeoptionen für alle Zellen:

pd.set_option('display.max_colwidth', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
display(df)

12voto

Colonel_Old Punkte 724

Der folgende Code führt zu dem untenstehenden Fehler:

pd.set_option('display.max_colwidth', -1)

Zukünftige Warnung: Die Verwendung einer negativen Ganzzahl ist in Version 1.0 veraltet und wird in zukünftigen Versionen nicht mehr unterstützt. Verwenden Sie stattdessen None, um die Spaltenbreite nicht zu begrenzen.

Verwenden Sie stattdessen:

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

Dies erledigt die Aufgabe und entspricht den Versionen von Pandas nach Version 1.0.

10voto

joelostblom Punkte 33814

Ein weiterer Weg, den gesamten Inhalt der Zellen in einem Pandas-Datenframe anzuzeigen, besteht darin, die Anzeigefunktionen von IPython zu verwenden:

from IPython.display import HTML

HTML(df.to_html())

5voto

Prabhat Punkte 3735

Für diejenigen, die dies in Dask tun möchten:

Ich konnte keine ähnliche Option in Dask finden, aber wenn ich einfach dasselbe in einem Notebook für Pandas mache, funktioniert es auch für Dask.

import pandas as pd
import dask.dataframe as dd
pd.set_option('display.max_colwidth', -1) # Dies wird das Nicht-Abschneiden sowohl für Pandas als auch für Dask einstellen. Ich bin mir jedoch nicht sicher, wie es für Dask funktioniert, aber es funktioniert.

train_data = dd.read_csv('./data/train.csv')
train_data.head(5)

1voto

Apostolos Punkte 2791

Für alle, die gerne weniger tippen (d.h. alle!): pd.set_option('max_colwidth', None) tut dasselbe

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