Как расширить отображение вывода, чтобы увидеть больше столбцов фрейма данных Pandas?

801

Есть ли способ расширить отображение вывода в интерактивном режиме или в режиме выполнения сценария?

В частности, я использую эту describe()функцию на пандах DataFrame. Когда DataFrameширина составляет пять столбцов (меток), я получаю нужную описательную статистику. Однако, если у DataFrameнего есть еще столбцы, статистика подавляется и возвращается что-то вроде этого:

>> Index: 8 entries, count to max
>> Data columns:
>> x1          8  non-null values
>> x2          8  non-null values
>> x3          8  non-null values
>> x4          8  non-null values
>> x5          8  non-null values
>> x6          8  non-null values
>> x7          8  non-null values

Значение «8» дается независимо от того, есть ли 6 или 7 столбцов. Что означает цифра «8»?

Я уже пытался увеличить размер окна IDLE , а также увеличить параметры ширины «Настроить IDLE», но безрезультатно.

Моя цель в использовании Pandas describe()- избежать использования второй программы, такой как Stata, для выполнения основных операций с данными и исследования.

1
  • Вот руководство пользователя «Параметры и настройки» от pandas с примерами, которые вы ищете. MogaGennis 14 мая в 23:18
1154

Обновление: Pandas 0.23.4 и новее

В этом нет необходимости. Pandas автоматически определяет размер окна вашего терминала, если вы установили pd.options.display.width = 0. (Более старые версии см. Внизу.)

pandas.set_printoptions(...)устарела. Вместо этого используйте pandas.set_option(optname, val), или что-то подобное pd.options.<opt.hierarchical.name> = val. Нравиться:

import pandas as pd
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)

Вот помощь дляset_option :

set_option(pat,value) - Sets the value of the specified option

Available options:
display.[chop_threshold, colheader_justify, column_space, date_dayfirst,
         date_yearfirst, encoding, expand_frame_repr, float_format, height,
         line_width, max_columns, max_colwidth, max_info_columns, max_info_rows,
         max_rows, max_seq_items, mpl_style, multi_sparse, notebook_repr_html,
         pprint_nest_depth, precision, width]
mode.[sim_interactive, use_inf_as_null]

Parameters
----------
pat - str/regexp which should match a single option.

Note: partial matches are supported for convenience, but unless you use the
full option name (e.g., *x.y.z.option_name*), your code may break in future
versions if new options with similar names are introduced.

value - new value of option.

Returns
-------
None

Raises
------
KeyError if no such option exists

display.chop_threshold: [default: None] [currently: None]
: float or None
        if set to a float value, all float values smaller then the given threshold
        will be displayed as exactly 0 by repr and friends.
display.colheader_justify: [default: right] [currently: right]
: 'left'/'right'
        Controls the justification of column headers. used by DataFrameFormatter.
display.column_space: [default: 12] [currently: 12]No description available.

display.date_dayfirst: [default: False] [currently: False]
: boolean
        When True, prints and parses dates with the day first, eg 20/01/2005
display.date_yearfirst: [default: False] [currently: False]
: boolean
        When True, prints and parses dates with the year first, e.g., 2005/01/20
display.encoding: [default: UTF-8] [currently: UTF-8]
: str/unicode
        Defaults to the detected encoding of the console.
        Specifies the encoding to be used for strings returned by to_string,
        these are generally strings meant to be displayed on the console.
display.expand_frame_repr: [default: True] [currently: True]
: boolean
        Whether to print out the full DataFrame repr for wide DataFrames
        across multiple lines, `max_columns` is still respected, but the output will
        wrap-around across multiple "pages" if it's width exceeds `display.width`.
display.float_format: [default: None] [currently: None]
: callable
        The callable should accept a floating point number and return
        a string with the desired format of the number. This is used
        in some places like SeriesFormatter.
        See core.format.EngFormatter for an example.
display.height: [default: 60] [currently: 1000]
: int
        Deprecated.
        (Deprecated, use `display.height` instead.)

display.line_width: [default: 80] [currently: 1000]
: int
        Deprecated.
        (Deprecated, use `display.width` instead.)

display.max_columns: [default: 20] [currently: 500]
: int
        max_rows and max_columns are used in __repr__() methods to decide if
        to_string() or info() is used to render an object to a string.  In case
        python/IPython is running in a terminal this can be set to 0 and Pandas
        will correctly auto-detect the width the terminal and swap to a smaller
        format in case all columns would not fit vertically. The IPython notebook,
        IPython qtconsole, or IDLE do not run in a terminal and hence it is not
        possible to do correct auto-detection.
        'None' value means unlimited.
display.max_colwidth: [default: 50] [currently: 50]
: int
        The maximum width in characters of a column in the repr of
        a Pandas data structure. When the column overflows, a "..."
        placeholder is embedded in the output.
display.max_info_columns: [default: 100] [currently: 100]
: int
        max_info_columns is used in DataFrame.info method to decide if
        per column information will be printed.
display.max_info_rows: [default: 1690785] [currently: 1690785]
: int or None
        max_info_rows is the maximum number of rows for which a frame will
        perform a null check on its columns when repr'ing To a console.
        The default is 1,000,000 rows. So, if a DataFrame has more
        1,000,000 rows there will be no null check performed on the
        columns and thus the representation will take much less time to
        display in an interactive session. A value of None means always
        perform a null check when repr'ing.
display.max_rows: [default: 60] [currently: 500]
: int
        This sets the maximum number of rows Pandas should output when printing
        out various output. For example, this value determines whether the repr()
        for a dataframe prints out fully or just a summary repr.
        'None' value means unlimited.
display.max_seq_items: [default: None] [currently: None]
: int or None

        when pretty-printing a long sequence, no more then `max_seq_items`
        will be printed. If items are ommitted, they will be denoted by the addition
        of "..." to the resulting string.

        If set to None, the number of items to be printed is unlimited.
display.mpl_style: [default: None] [currently: None]
: bool

        Setting this to 'default' will modify the rcParams used by matplotlib
        to give plots a more pleasing visual style by default.
        Setting this to None/False restores the values to their initial value.
display.multi_sparse: [default: True] [currently: True]
: boolean
        "sparsify" MultiIndex display (don't display repeated
        elements in outer levels within groups)
display.notebook_repr_html: [default: True] [currently: True]
: boolean
        When True, IPython notebook will use html representation for
        Pandas objects (if it is available).
display.pprint_nest_depth: [default: 3] [currently: 3]
: int
        Controls the number of nested levels to process when pretty-printing
display.precision: [default: 7] [currently: 7]
: int
        Floating point output precision (number of significant digits). This is
        only a suggestion
display.width: [default: 80] [currently: 1000]
: int
        Width of the display in characters. In case python/IPython is running in
        a terminal this can be set to None and Pandas will correctly auto-detect the
        width.
        Note that the IPython notebook, IPython qtconsole, or IDLE do not run in a
        terminal and hence it is not possible to correctly detect the width.
mode.sim_interactive: [default: False] [currently: False]
: boolean
        Whether to simulate interactive mode for purposes of testing
mode.use_inf_as_null: [default: False] [currently: False]
: boolean
        True means treat None, NaN, INF, -INF as null (old way),
        False means None and NaN are null, but INF, -INF are not null
        (new way).
Call def:   pd.set_option(self, *args, **kwds)

Информация о более старой версии. Большая часть этого устарела.

Как упоминалось в @bmu , Pandas автоматически определяет (по умолчанию) размер области отображения, будет использоваться сводное представление, когда репродукция объекта не помещается на дисплее. Вы упомянули об изменении размера окна IDLE, но безрезультатно. Если вы это сделаете print df.describe().to_string(), поместится ли он в окне IDLE?

Размер терминала определяется pandas.util.terminal.get_terminal_size()(устарел и удален), это возвращает кортеж, содержащий (width, height)отображение. Соответствует ли вывод размеру вашего окна IDLE? Может быть проблема (она была раньше при запуске терминала в Emacs).

Обратите внимание, что можно обойти автоматическое обнаружение, pandas.set_printoptions(max_rows=200, max_columns=10)никогда не переключится в сводное представление, если количество строк, столбцов не превышает заданные ограничения.


Параметр max_colwidth помогает увидеть неусеченную форму каждого столбца.

TruncatedColumnDisplay

12
  • Пытался получить то же самое с IDLE, отлично работает с pylab. Я поднял вопрос по этому поводу . Wouter Overmeire 31 июля '12 в 21: 422012-07-31 18:42
  • 5
    display.height: не рекомендуется, используйте display.heightвместо этого ... Я в мертвой петле. Frozen Flame 15 июня '14 в 3:24
  • 8
    В настоящее время параметры также могут быть установлены как присвоения атрибутамpd.options , напримерpd.options.display.max_rows = 999unutbu 7 июня '15 в 0:19
  • 2
    Свойство display.height устарело. Greg M. Krsak 22 марта '16 в 16: 472016-03-22 16:47
  • 7
    Вы можете использовать option_context, чтобы изменения параметра были локальными для того, с чем вы работаете. Это предотвращает случайную распечатку 400 страниц нежелательной почты при следующем звонке .head()или чему-то еще. Mike Williamson 5 окт '18 в 23:16
230

Попробуй это:

pd.set_option('display.expand_frame_repr', False)

Из документации:

display.expand_frame_repr : boolean

Whether to print out the full DataFrame repr for wide DataFrames across multiple lines, max_columns is still respected, but the output will wrap-around across multiple “pages” if it’s width exceeds display.width. [default: True] [currently: True]

См. Pandas.set_option .

3
  • 8
    Этот мне подходит. Кажется, что pandas по какой-то причине неправильно рассчитывает ширину вывода и без надобности разбивает столбцы. zbyszek 24 июля '15 в 17:44
  • 6
    Мне буквально приходится делать это каждый день ... Есть ли способ установить это где-нибудь глобально? citynorman 08 окт.
  • 2
    @citynorman смотри, pandas\core\config_init.pyчтобы установить его навсегда. Jarad 07 июл.
153

Если вы хотите временно установить параметры для отображения одного большого DataFrame, вы можете использовать option_context :

with pd.option_context('display.max_rows', None, 'display.max_columns', None):
    print (df)

Значения опций восстанавливаются автоматически при выходе из withблока.

7
  • 4
    Для того, чтобы не устанавливать ограничений, Noneможно использовать (вместо 999 и т. Д.). Eric O Lebigot 14 сен.
  • 6
    with pd.option_context('display.max_rows', None, 'display.max_columns', None): print(energy)не сработало. Это не изменило количество столбцов, которые я хотел видеть. Однако решение Воутера Овермейера действительно сработало. azizj 20 сен '17 в 12:43
  • Но есть разница, нужно какое-то число вроде -1или 500, а не None. jezrael 20 сен '17 в 12:45
  • 2
    Использование -1 вылетает, и 500 тоже ничего не сделалиazizj 20 сен '17 в 13:07
  • 1
    +1 за предложение диспетчера контекста, но -1 за max_rowsзначение;). Установка 'display.max_rows'на -1, похоже, полностью испортила форматирование (для моих данных сбоев нет, но теперь он печатает определенные строки несколько раз). bluenote10 19 марта '19 в 12: 092019-03-19 12:09
123

Для меня сработало только использование этих трех строк:

pd.set_option('display.max_columns', None)
pd.set_option('display.expand_frame_repr', False)
pd.set_option('max_colwidth', -1)

Это было для Anaconda , Python 3.6.5, Pandas 0.23.0 и Visual Studio Code 1.26.

3
  • 2
    Все сообщения, за которые проголосовали выше, используют свойства, которые переименованы или отключены в новейших версиях pandas. Все 800 голосов вверх принадлежат именно этой. Название скетча сырного магазина pipy / pypi просто щелкнуло. Eric Leschinski 17 июн.
  • 1
    pd.set_option('max_colwidth', 100)если вы хотите указать максимальную ширинуElder Druid 06 окт.202020, 21:19
  • 6
    Новые версии Pandas теперь принимают Noneаргумент об отсутствии максимальной ширины столбца вместо-1Andreas Klintberg 20 янв в 19:45
64

Установите максимальную ширину столбца, используя:

pd.set_option('max_colwidth', 800)

Этот конкретный оператор устанавливает максимальную ширину 800 пикселей на столбец.

3
  • 3
    Прокрутка вниз в порядке убывания голосов, это первый ответ, который помог мне заставить pandas не усекать текстовый вывод DataFrames. (панды 0.22, iTerm2 3.0.13, OS X 10.12). Peter Leimbigler 19 марта '18 в 23: 382018-03-19 20:38
  • 3
    Это единственный, который у меня работал на Pandas 0.23.2. devinbost 27 сен.
  • 1
    Почему вам не нужно было указывать это как display.max_colwidth? Вот как это указано в документации. Согласен, что только max_colwidthработает и короче писать, но я был удивлен. cmo 17 окт.
27

Вы можете использовать, print df.describe().to_string()чтобы заставить его показать всю таблицу. (Вы можете использовать to_string()это для любого DataFrame. Результатом describeявляется сам DataFrame.)

Число 8 - это количество строк в DataFrame, содержащих «описание» (поскольку describeвычисляет 8 статистических данных, минимальное, максимальное, среднее значение и т. Д.).

0
27

Вы можете настроить параметры печати Pandas с помощью set_printoptions.

In [3]: df.describe()
Out[3]:
<class 'pandas.core.frame.DataFrame'>
Index: 8 entries, count to max
Data columns:
x1    8  non-null values
x2    8  non-null values
x3    8  non-null values
x4    8  non-null values
x5    8  non-null values
x6    8  non-null values
x7    8  non-null values
dtypes: float64(7)

In [4]: pd.set_printoptions(precision=2)

In [5]: df.describe()
Out[5]:
            x1       x2       x3       x4       x5       x6       x7
count      8.0      8.0      8.0      8.0      8.0      8.0      8.0
mean   69024.5  69025.5  69026.5  69027.5  69028.5  69029.5  69030.5
std       17.1     17.1     17.1     17.1     17.1     17.1     17.1
min    69000.0  69001.0  69002.0  69003.0  69004.0  69005.0  69006.0
25%    69012.2  69013.2  69014.2  69015.2  69016.2  69017.2  69018.2
50%    69024.5  69025.5  69026.5  69027.5  69028.5  69029.5  69030.5
75%    69036.8  69037.8  69038.8  69039.8  69040.8  69041.8  69042.8
max    69049.0  69050.0  69051.0  69052.0  69053.0  69054.0  69055.0

Однако это не будет работать во всех случаях, поскольку Pandas определяет ширину вашей консоли и будет использовать ее только в том to_stringслучае, если вывод умещается в консоли (см. Строку документации set_printoptions). В этом случае вы можете явно вызвать to_stringответ от BrenBarn .

Обновлять

В версии 0.10 изменился способ печати фреймов данных :

In [3]: df.describe()
Out[3]:
                 x1            x2            x3            x4            x5  \
count      8.000000      8.000000      8.000000      8.000000      8.000000
mean   59832.361578  27356.711336  49317.281222  51214.837838  51254.839690
std    22600.723536  26867.192716  28071.737509  21012.422793  33831.515761
min    31906.695474   1648.359160     56.378115  16278.322271     43.745574
25%    45264.625201  12799.540572  41429.628749  40374.273582  29789.643875
50%    56340.214856  18666.456293  51995.661512  54894.562656  47667.684422
75%    75587.003417  31375.610322  61069.190523  67811.893435  76014.884048
max    98136.474782  84544.484627  91743.983895  75154.587156  99012.695717

                 x6            x7
count      8.000000      8.000000
mean   41863.000717  33950.235126
std    38709.468281  29075.745673
min     3590.990740   1833.464154
25%    15145.759625   6879.523949
50%    22139.243042  33706.029946
75%    72038.983496  51449.893980
max    98601.190488  83309.051963

Кроме того, изменился API для настройки параметров Pandas:

In [4]: pd.set_option('display.precision', 2)

In [5]: df.describe()
Out[5]:
            x1       x2       x3       x4       x5       x6       x7
count      8.0      8.0      8.0      8.0      8.0      8.0      8.0
mean   59832.4  27356.7  49317.3  51214.8  51254.8  41863.0  33950.2
std    22600.7  26867.2  28071.7  21012.4  33831.5  38709.5  29075.7
min    31906.7   1648.4     56.4  16278.3     43.7   3591.0   1833.5
25%    45264.6  12799.5  41429.6  40374.3  29789.6  15145.8   6879.5
50%    56340.2  18666.5  51995.7  54894.6  47667.7  22139.2  33706.0
75%    75587.0  31375.6  61069.2  67811.9  76014.9  72039.0  51449.9
max    98136.5  84544.5  91744.0  75154.6  99012.7  98601.2  83309.1
1
  • Я предпочитаю использовать метод max_columns, упомянутый lodagro, но я рад, что вы упомянули ключевое слово precision, поскольку это поможет очистить отображаемую статистику. Спасибо! beets 30 июл.
23

Вы можете настроить отображение вывода в соответствии с шириной вашего терминала:

pd.set_option('display.width', pd.util.terminal.get_terminal_size()[0])
9
  • 7
    @ wouter-overmeire говорит, что pandas делает это автоматически , но похоже, что это не так, по крайней мере, не с 0.18.0. Однако, если вы используете pd.set_option('display.width', None)терминал, «панды правильно автоматически определят ширину» . Matthias Fripp 28 апр '16 в 0:19
  • Точно! По умолчанию этого не происходит. Установив его на None, он просто игнорирует ширину. Может быть, это ошибка в Pandas, или, может быть, это связано с терминалом gnome ..? Спасибо Уилфреду Хьюзу! danger89 12 июля '16 в 13: 082016-07-12 13:08
  • 5
    AttributeError: модуль pandas.util не имеет атрибута terminalusermay14 21 июня '17 в 0: 032017-06-21 03:03
  • 1
    @BhishanPoudel Вместо этого вы можете сделать это:pd.options.display.width = NoneSebMa 22 июня '18 в 9:30
  • 1
    @BhishanPoudel Этому ответу несколько лет назад, и я столкнулся с той же проблемой, что и вы. На момент написания этого с использованием pandas версии 0.23.1 модуль теперьpd.io.formats.terminal.get_terminal_size()Ajay 11 июля '18 в 21: 312018-07-11 18:31
14

Согласно документации для v0.18.0 , если вы работаете в терминале (т. Е. Не в ноутбуке IPython , qtconsole или IDLE ), это двухстрочный инструмент, позволяющий Pandas автоматически определять ширину вашего экрана и адаптировать его на лету с указанием количества столбцов. это показывает:

pd.set_option('display.large_repr', 'truncate')
pd.set_option('display.max_columns', 0)
1
  • 1
    У меня это сработало, спасибо! Я использую Pandas 0.22.0 (последнее по состоянию на 8 февраля 2018 г.), используя встроенное приложение Terminal в OS X 10.11.6Greg Sadetsky 8 фев '18 в 17:41
14

Я использовал эти настройки, когда масштаб данных был высоким.

# Environment settings: 
pd.set_option('display.max_column', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_seq_items', None)
pd.set_option('display.max_colwidth', 500)
pd.set_option('expand_frame_repr', True)

Вы можете обратиться к документации здесь .

2
  • Это действительно отлично сработало для меня в vs_codelys 10 фев в 4:18
  • Работал и в Google colab! TheEconomist 17 августа в 12:40
8

Кажется, что все предыдущие ответы решают проблему. Еще один момент: вместо этого pd.set_option('option_name')вы можете использовать (автозаполнение):

pd.options.display.width = None

См. Документацию Pandas: Параметры и настройки :

Options have a full “dotted-style”, case-insensitive name (e.g. display.max_rows). You can get/set options directly as attributes of the top-level options attribute:

In [1]: import pandas as pd

In [2]: pd.options.display.max_rows
Out[2]: 15

In [3]: pd.options.display.max_rows = 999

In [4]: pd.options.display.max_rows
Out[4]: 999

[...]

По max_...параметрам:

max_rows and max_columns are used in __repr__() methods to decide if to_string() or info() is used to render an object to a string. In case Python/IPython is running in a terminal this can be set to 0 and pandas will correctly auto-detect the width the terminal and swap to a smaller format in case all columns would not fit vertically. The IPython notebook, IPython qtconsole, or IDLE do not run in a terminal and hence it is not possible to do correct auto-detection. None’ value means unlimited. [emphasis not in original]

Для widthпараметра:

Width of the display in characters. In case Python/IPython is running in a terminal this can be set to None and pandas will correctly auto-detect the width. Note that the IPython notebook, IPython qtconsole, or IDLE do not run in a terminal and hence it is not possible to correctly detect the width.

6
import pandas as pd
pd.set_option('display.max_columns', 100)
pd.set_option('display.width', 1000)

SentenceA = "William likes Piano and Piano likes William"
SentenceB = "Sara likes Guitar"
SentenceC = "Mamoosh likes Piano"
SentenceD = "William is a CS Student"
SentenceE = "Sara is kind"
SentenceF = "Mamoosh is kind"


bowA = SentenceA.split(" ")
bowB = SentenceB.split(" ")
bowC = SentenceC.split(" ")
bowD = SentenceD.split(" ")
bowE = SentenceE.split(" ")
bowF = SentenceF.split(" ")

# Creating a set consisting of all words

wordSet = set(bowA).union(set(bowB)).union(set(bowC)).union(set(bowD)).union(set(bowE)).union(set(bowF))
print("Set of all words is: ", wordSet)

# Initiating dictionary with 0 value for all BOWs

wordDictA = dict.fromkeys(wordSet, 0)
wordDictB = dict.fromkeys(wordSet, 0)
wordDictC = dict.fromkeys(wordSet, 0)
wordDictD = dict.fromkeys(wordSet, 0)
wordDictE = dict.fromkeys(wordSet, 0)
wordDictF = dict.fromkeys(wordSet, 0)

for word in bowA:
    wordDictA[word] += 1
for word in bowB:
    wordDictB[word] += 1
for word in bowC:
    wordDictC[word] += 1
for word in bowD:
    wordDictD[word] += 1
for word in bowE:
    wordDictE[word] += 1
for word in bowF:
    wordDictF[word] += 1

# Printing term frequency

print("SentenceA TF: ", wordDictA)
print("SentenceB TF: ", wordDictB)
print("SentenceC TF: ", wordDictC)
print("SentenceD TF: ", wordDictD)
print("SentenceE TF: ", wordDictE)
print("SentenceF TF: ", wordDictF)

print(pd.DataFrame([wordDictA, wordDictB, wordDictB, wordDictC, wordDictD, wordDictE, wordDictF]))

Выход:

   CS  Guitar  Mamoosh  Piano  Sara  Student  William  a  and  is  kind  likes
0   0       0        0      2     0        0        2  0    1   0     0      2
1   0       1        0      0     1        0        0  0    0   0     0      1
2   0       1        0      0     1        0        0  0    0   0     0      1
3   0       0        1      1     0        0        0  0    0   0     0      1
4   1       0        0      0     0        1        1  1    0   1     0      0
5   0       0        0      0     1        0        0  0    0   1     1      0
6   0       0        1      0     0        0        0  0    0   1     1      0
1
  • Вам просто нужны эти два: (проверьте пример выше) импортируйте панды как pd pd.set_option ('display.max_columns', 100) pd.set_option ('display.width', 1000)William Pourmajidi 23 ноя '18 в 10:12
6

Строки ниже достаточно для отображения всех столбцов из фрейма данных.

pd.set_option('display.max_columns', None)
1
  • 1
    Добро пожаловать в SO! Когда вы публикуете новый ответ на вопрос, и есть еще несколько ответов, постарайтесь показать плюсы. Есть еще один ответ. pd.set_option('display.max_columns', 0)Какие преимущества у вас? David García Bodego 5 ноя '19 в 6:54
4

Если вы не хотите путаться с параметрами отображения и просто хотите видеть этот конкретный список столбцов, не раскрывая каждый просматриваемый фрейм данных, вы можете попробовать:

df.columns.values
3

Вы можете просто выполнить следующие шаги,

  • Вы можете изменить параметры функции Pandas max_columns следующим образом:

    import pandas as pd
    pd.options.display.max_columns = 10
    

    (Это позволяет отображать 10 столбцов, и вы можете изменить это по своему усмотрению.)

  • Таким образом, вы можете изменить количество строк, которые вам нужно отображать, следующим образом (если вам также нужно изменить максимальное количество строк):

    pd.options.display.max_rows = 999
    

    (Это позволяет печатать 999 строк за раз.)

Пожалуйста, обратитесь к документации, чтобы изменить различные параметры / настройки для Pandas.

3

Вы можете использовать эту настраиваемую функцию для отображения вещей для панд Dataframe.

def display_all(df):     # For any Dataframe df
   with pd.option_context('display.max_rows',1000): # Change number of rows accordingly
      with pd.option_context('display.max_columns',1000): # Change number of columns accordingly
          display(df)

display_all(df.head()) # Pass this function to your dataframe and voilà!

Необязательно использовать pd.set_optionдля всей записной книжки только одну ячейку.

2

Вы также можете попробовать в цикле:

for col in df.columns: 
    print(col) 
1
  • Объяснение было бы в порядке. Например, как это отвечает на вопрос «Есть ли способ расширить отображение вывода в интерактивном режиме или режиме выполнения сценария?» Peter Mortensen 6 июн в 20:25
2
pd.options.display.max_columns = 100

Вы можете указать количество столбцов в соответствии с вашими требованиями в max_columns.

0
2

Ниже показано увеличение ширины при печати массивов NumPy.

Это дало хорошие результаты в Jupyter Notebook .

import numpy as np
np.set_printoptions(linewidth=160)
0

Ни один из этих ответов не помог мне. Некоторые из них действительно напечатали бы все столбцы, но это выглядело бы небрежно. Как и вся информация, была, но отформатирована неправильно. Я использую терминал внутри Neovim, поэтому подозреваю, что причина в этом.

Эта мини-функция делает именно то, что мне нужно, просто измените df_dataдва места для имени вашего фрейма данных ( col_rangeустановлено на то, что естественно показывает панды, для меня это 5, но для вас оно может быть больше или меньше).

import math
col_range = 5
for _ in range(int(math.ceil(len(df_data.columns)/col_range))):
    idx1 = _*col_range
    idx2 = idx1+col_range
    print(df_data.iloc[:, idx1:idx2].describe())