パンダto_html()は文字列の内容を切り捨てます


81

DataFrameテキストデータを含むPythonPandasオブジェクトがあります。私の問題は、to_html()関数を使用すると、出力の文字列が切り捨てられることです。

例えば:

import pandas
df = pandas.DataFrame({'text': ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.']})
print (df.to_html())

出力はで切り捨てられます 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>

SOには関連する質問がありますが、プレースホルダーと検索/置換機能を使用してHTMLを後処理しますが、これは避けたいと思います。

この問題に対するより簡単な解決策はありますか?ドキュメントから関連するものは何も見つかりませんでした。


2
コンテンツをどのように表示していますか?iPythonを使用していますか?これpd.set_option('display.max_colwidth', -1)を試してからhtmlを印刷すると、全文が表示されることがわかります。これは、実際のデータの切り捨てとは関係なく、表示設定だけです
EdChum 2014年

@EdChumはい、確かに私はIPythonを介してHTMLを見ていましたが、通常のPythonターミナルでも同じ結果が得られました。しかし、はい、set_optionはそれを修正します!ターミナルとIPythonの両方で。以前はその可能性について知りませんでした。
ティモ

pandas

それらのリストはここにあります:stackoverflow.com/questions/21293536/list-of-pandas-options/…およびオンラインドキュメント:pandas.pydata.org/pandas-docs/stable/options.html
EdChum

回答:


108

あなたが見ているのは、パンダが表示目的でのみ出力を切り捨てていることです。

デフォルトmax_colwidth値は50で、これが表示されています。

この値を任意に設定することも、-1に設定して効果的にオフにすることもできます。

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

これには反対することをお勧めしますが、コンソールまたはipythonで簡単に表示できるものに設定することをお勧めします。

オプションのリストはここにあります:http//pandas.pydata.org/pandas-docs/stable/options.html


8
df.to_html() `の` "..."はに評価されTrueます。pandas表示だけでなく、出力値を切り捨てているようです。
Chris Chudzicki 2016

私はこの質問で説明する非常に奇妙なケースがあります:stackoverflow.com/questions/51260756/…htmlテーブルのセル値が辞書を保持しています。これほど大きくない辞書は他の表でも大丈夫ですが、この非常に長い辞書はドットで省略されて表示できません。pd.set_option( 'display.max_rows'、1000)を試してみましたが、うまくいきませんでした。これに対する提案、または私の質問への回答さえありますか?
user637338 2018

これはまだv0.24でこれを行う方法ですか?
JasonStrimpel19年

@JasonStrimpelはい、私はそう信じている
EdChum

1
あなたがすることはできません@Superdooperhero、表示オプションは、すべての列または行に影響を与える
EdChum

19

それpd.set_option('display.max_colwidth', -1)が確かに唯一の選択肢のようです。コンソールでのデータフレームの表示方法の不可逆的なグローバル変更を防ぐために、次のように、以前の設定を変数に保存し、使用後すぐに復元することができます。

    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)

45
一時的なオプションを設定するには、どのようにはるかに簡単な解決策があります:with pd.option_context('display.max_colwidth', -1): output_html = df.to_html()
hynekcer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.