Mam obiekt Python Pandas DataFrame
zawierający dane tekstowe. Mój problem polega na tym, że kiedy używamto_html()
funkcji, obcina ona ciągi w danych wyjściowych.
Na przykład:
import pandas
df = pandas.DataFrame({'text': ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.']})
print (df.to_html())
Dane wyjściowe są obcinane w 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>
Jest powiązane pytanie dotyczące SO, ale używa on symboli zastępczych i funkcji wyszukiwania / zamieniania do postprocessingu HTML, czego chciałbym uniknąć:
Czy istnieje prostsze rozwiązanie tego problemu? Nie mogłem znaleźć nic związanego z dokumentacją .
pd.set_option('display.max_colwidth', -1)
a następnie wydrukuj HTML, powinieneś zauważyć, że wyświetla pełny tekst, nie ma to nic wspólnego z obcięciem rzeczywistych danych, tylko ustawieniem wyświetlaniaOdpowiedzi:
To, co widzisz, to pandy obcinające dane wyjściowe tylko w celu wyświetlenia.
Domyślny
max_colwidth
wartość to 50, czyli to, co widzisz.Możesz ustawić tę wartość na cokolwiek chcesz lub możesz ustawić ją na -1, co skutecznie to wyłącza:
pd.set_option('display.max_colwidth', -1)
Chociaż odradzałbym to, lepiej byłoby ustawić to na coś, co można łatwo wyświetlić w konsoli lub ipythonie.
Listę opcji można znaleźć tutaj: http://pandas.pydata.org/pandas-docs/stable/options.html
źródło
True
. Wygląda napandas
to, że obcina wartość wyjściową, a nie tylko wyświetlacz.wydaje się, że
pd.set_option('display.max_colwidth', -1)
jest to rzeczywiście jedyna opcja. Aby zapobiec nieodwracalnym globalnym zmianom w sposobie prezentowania ramek danych w konsoli, możesz zapisać poprzednie ustawienie w zmiennej i przywrócić je natychmiast po użyciu w następujący sposób: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)
źródło
with pd.option_context('display.max_colwidth', -1): output_html = df.to_html()