Я много работаю с Series и DataFrames на терминале. По умолчанию __repr__
для серии возвращается уменьшенная выборка с некоторыми значениями головы и хвоста, но остальные отсутствуют.
Есть ли встроенный способ красивой печати всей серии / DataFrame? В идеале, он будет поддерживать правильное выравнивание, возможно, границы между столбцами, и, возможно, даже цветовое кодирование для различных столбцов.
pd.set_option('display.max_rows', 1000)
например, используя раскраску, я предполагаю, что вы говорите о раскраске вывода html repr. Я не думаю, что это встроено вообще.display.max_rows
, проблема в том, что большую часть времени я хочу, чтобы вывод был обрезан. Это только изредка, что я хочу увидеть полный вывод. Я мог бы установить опцию на очень высокое значение, использовать значение по умолчанию__repr__
, а затем вернуть значение, но это кажется немного громоздким, и я мог бы также написать свою собственную функцию pretty-print в этом случае.set_option
, поддерживающих раскраску, это может быть что-то, что можно сделать как плагин для применения некоторого CSS или выходного форматирования. Это единственный способ, которым я думаю, что вы могли бы достичь этогоОтветы:
Вы также можете использовать
option_context
один или несколько параметров:Это автоматически вернет параметры к их предыдущим значениям.
Если вы работаете с jupyter-notebook,
display(df)
вместо негоprint(df)
будет использоваться логика отображения, богатая jupyter (например, так) .источник
None
отключает их. Использованиеwith pd.option_context()
опционных документов , что происходит очень четко и ясно, и дает понять , как достичь других изменений в выходе форматирования , которые могут быть желательными, с использованием , напримерprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, и многое другое: pandas.pydata.org/pandas -docs / stable / options.htmldisplay(df)
вместоprint(df)
Не нужно взламывать настройки. Есть простой способ:
источник
with pd.option_context()
опционных документов , что происходит на гораздо более четко и ясно, и дает понять , как достичь других изменений в выходе форматирования , которые могут быть желательны, используя , напримерprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, и многое другое: pandas.pydata.org/ pandas-docs / stable / options.htmlpd.set_option('display.max_rows', None)
непосредственно перед печатьюdf
.Конечно, если это происходит много, создайте такую функцию, как эта. Вы даже можете настроить его на загрузку при каждом запуске IPython: https://ipython.org/ipython-doc/1/config/overview.html
Что касается окраски, то слишком сложная обработка цветов кажется мне контрпродуктивной, но я согласен, что что-то вроде начальной загрузки
.table-striped
было бы неплохо. Вы всегда можете создать проблему, чтобы предложить эту функцию.источник
После импорта панд, в качестве альтернативы использованию диспетчера контекста, установите такие параметры для отображения целых кадров данных:
Полный список полезных опций смотрите:
источник
-1
значение int вместоNone
, если вы хотите полное представлениеdisplay.
в имени опции не требуется. Например,set_option('max_columns')
работает одинаково хорошо.Используйте пакетный пакет:
И рассмотрим следующий пример использования:
источник
pd_series.to_frame()
Если вы используете Ipython Notebook (Jupyter). Вы можете использовать HTML
источник
С помощью
pd.options.display
Этот ответ является вариацией предыдущего ответа от lucidyan . Это делает код более читабельным, избегая использования
set_option
.После импорта панд, в качестве альтернативы использованию диспетчера контекста, установите такие параметры для отображения больших фреймов данных:
После этого вы можете использовать либо
display(df)
или просто,df
если используете ноутбук, в противном случаеprint(df)
.С помощью
to_string
Панды 0.25.3 имеет
DataFrame.to_string
иSeries.to_string
методы, которые принимают параметры форматирования.С помощью
to_markdown
Если вам нужен вывод уценки, Pandas 1.0.0 имеет
DataFrame.to_markdown
иSeries.to_markdown
методы.С помощью
to_html
Если вам нужен вывод HTML, у Pandas 0.25.3 есть
DataFrame.to_html
метод, но нетSeries.to_html
. Обратите внимание, чтоSeries
можно преобразовать вDataFrame
.источник
Попробуй это
источник
Вы можете добиться этого, используя метод ниже. просто передать общее нет. столбцов, представленных в DataFrame как аргумент
Например:
источник
Попробуйте использовать функцию display (). Это автоматически использовало бы горизонтальные и вертикальные полосы прокрутки, и с этим вы можете легко отображать различные наборы данных вместо использования print ().
display () также поддерживает правильное выравнивание.
Однако, если вы хотите сделать набор данных более красивым, вы можете проверить
pd.option_context()
. У этого есть много вариантов, чтобы ясно показать кадр данных.Примечание - я использую ноутбуки Jupyter.
источник