Ich habe ein Python Pandas- DataFrame
Objekt, das Textdaten enthält. Mein Problem ist, dass bei Verwendung der to_html()
Funktion die Zeichenfolgen in der Ausgabe abgeschnitten werden.
Zum Beispiel:
import pandas
df = pandas.DataFrame({'text': ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.']})
print (df.to_html())
Die Ausgabe wird bei abgeschnitten adapis...
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>text</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td> Lorem ipsum dolor sit amet, consectetur adipis...</td>
</tr>
</tbody>
</table>
Es gibt eine verwandte Frage zu SO, aber es verwendet Platzhalter und Such- / Ersetzungsfunktionen, um den HTML-Code nachzubearbeiten, was ich vermeiden möchte:
Gibt es eine einfachere Lösung für dieses Problem? Ich konnte nichts in der Dokumentation finden .
pd.set_option('display.max_colwidth', -1)
und drucken Sie dann das HTML aus. Sie sollten feststellen, dass es den vollständigen Text anzeigt. Dies hat nichts mit dem Abschneiden der tatsächlichen Daten zu tun,Antworten:
Was Sie sehen, sind Pandas, die die Ausgabe nur zu Anzeigezwecken abschneiden.
Der Standardwert
max_colwidth
ist 50, was Sie sehen.Sie können diesen Wert auf einen beliebigen Wert einstellen oder auf -1, wodurch dies effektiv deaktiviert wird:
pd.set_option('display.max_colwidth', -1)
Obwohl ich davon abraten würde, wäre es besser, es auf etwas zu setzen, das einfach in Ihrer Konsole oder Ipython angezeigt werden kann.
Eine Liste der Optionen finden Sie hier: http://pandas.pydata.org/pandas-docs/stable/options.html
quelle
True
. Es scheint,pandas
als würde der Ausgabewert abgeschnitten, nicht nur die Anzeige.es scheint, dass dies
pd.set_option('display.max_colwidth', -1)
in der Tat die einzige Option ist. Um irreversible globale Änderungen der Darstellung von Datenrahmen in der Konsole zu vermeiden, können Sie die vorherige Einstellung in einer Variablen speichern und unmittelbar nach der Verwendung wie folgt wiederherstellen:old_width = pd.get_option('display.max_colwidth') pd.set_option('display.max_colwidth', -1) open('some_file.html', 'w').write(some_data.to_html()) pd.set_option('display.max_colwidth', old_width)
quelle
with pd.option_context('display.max_colwidth', -1): output_html = df.to_html()