pandasオプションmax_colwidth
は、データフレームのreprに含まれる文字数を制御します。
import string, random
import pandas as pd
df = pd.DataFrame([''.join(random.choice(string.ascii_lowercase + ' ') for j in range(1000)) for i in range(4)])
pd.options.display.max_colwidth = 10
print(df)
収量
0
0 lmftge...
1 pqttqb...
2 wi wgy...
3 ow dip...
そして
pd.options.display.max_colwidth = 30
print(df)
収量
0
0 lmftgenioerszvgzfaxorzciow...
1 pqttqbqqe pykgguxnjsspbcti...
2 wi wgybtgcbxkobrwnaxpxwsjc...
3 ow dippaiamvvcofvousieckko...
また、pd.options.display.max_colwidth = 0
を設定して、制限を完全に削除することができます。これまでのところ大丈夫です!
ただし、データフレームがノートブック内でHTMLでレンダリングされる場合、ノートブックは、この設定に関係なく、列のテーブルをディスプレイの幅にラップします。
これを回避する方法はありますか?つまり、HTMLテーブルの列を必要な幅でレンダリングして各行を1行に収める方法はありますか?
より一般的には、pandas出力の文字数に関係なく、ノートブック出力のHTMLテーブル列の幅を制御することは可能ですか?
ファイルを作成する場合:~/.jupyter/custom$ atom custom.css
そしてこれをそれに入れます:
.dataframe td {
white-space: nowrap;
}
次に、セルを強制的に1行で表示しますが、スクロールテーブルが表示されます。
スクロールしないようにする場合は、次のように設定します。
div.output_subarea {
overflow-x: inherit;
}
そして、それは必要なだけ広くなります:
あまりきれいではありませんが、必要に応じて片付けることができると思います。
this 非常に役に立ちました。また、登録するcssファイルを最初に作成した後でノートブックを再起動する必要がありますが、それ以降は、ページを更新するだけで、cssへの変更が有効になります。
ベンの答えに基づいていますが、カスタムcssファイルにアクセスする必要はありません。これはjupyterlabでは動作が異なります。
これをセルに入れて実行するだけです。
%%html
<style>
.dataframe td {
white-space: nowrap;
}
</style>