web-dev-qa-db-ja.com

ipythonノートブックpandas最大許容列

10列のシンプルなcsvファイルがあります!

ノートブックで次のオプションを設定してcsvファイル(pandas dataframe)にある)を印刷すると、すべての列が左から右に印刷されず、最初の2つが印刷されます。下の次の2つなど。

このオプションを使用しましたが、なぜ機能しないのですか?

pd.option_context("display.max_rows",1,"display.max_columns",100)

これでもうまくいかないようです:

pandas.set_option('display.max_columns', None)
19
yoshiserry

次のオプションがうまく機能する(IPython 2.3)よりも、ノートブックにデータを表示したいと思います。

import pandas as pd
from IPython.display import display
data = pd.read_csv('yourdata.txt')

オプションを直接設定する

pd.options.display.max_columns = None
display(data)

または、実際に正常に機能することを示したset_optionメソッドを使用します

pd.set_option('display.max_columns', None)
display(data)

スクリプト全体にこのオプションを設定したくない場合は、コンテキストマネージャを使用してください。

with pd.option_context('display.max_columns', None):
    display(data)

これで問題が解決しない場合は、問題を再現するための最小限の例を挙げてください。

31
Jakob

pandasにHTMLマークアップを返すように要求し、IPythonにHTMLテーブルをレンダリングさせることによって、すべてのデータを表示することもできます。

_import pandas as pd
from IPython.display import HTML
data = pd.read_csv('yourdata.csv')
HTML(data.to_html())
_

IPython 3.0.0とPython 3.4を使用して、@ Jakobで説明されているdisplay(data)は、上下のスクロールバーと左右のスクロールバーを持つテーブルとしてレンダリングされますが、テーブルは依然としてセルよりも幅が広く、一部の列は画面の右側にあります。すべてのデータを表示するには、セルを折りたたむ必要があります。これにより、スクロールバーが追加されます。その結果、スクロールボックスにスクロールボックスがありません。 2つのスクロールバー間でフォーカスを移動して、データ全体を移動する必要があるため、理想的です。

HTMLメソッドを使用して、スクロールバーなしで巨大なテーブルをそのままレンダリングします。その後、このセルを折りたたんで、垂直バーと水平バーを1つだけ表示することができます。

HTMLを使用する際の注意点は、テーブルのレンダリングに時間がかかることです。 150x50までのマトリックスのみを使用しており、速度の違いは顕著でしたが、不便ではありませんでした。巨大なテーブルがある場合は、このメソッドを使用して一度にすべてを表示しないでください。とは言っても、巨大なテーブルがある場合、一度にすべてをレンダリングすることは明らかに悪い考えですが、それをやろうとするとします。

0
scottclowe

この質問は、Googleでの最初のヒットの1つとして見つかりました。ジュピターラボでは、

pandas.set_option("display.max_columns", None)

今はうまく機能しているようです-私の例は32列でしたが、以前は切り捨てられていて、それ以上ではありません。

0
MasterAir