Отображение всех столбцов фрейма данных в Jupyter Python Notebook


103

Я хочу показать все столбцы в фрейме данных в Jupyter Notebook. Jupyter показывает некоторые столбцы и добавляет точки к последним столбцам, как на следующем рисунке:

Скриншот Juputer

Как я могу отобразить все столбцы?

Ответы:


173

Попробуйте установить параметр display max_columns следующим образом:

import pandas as pd
from IPython.display import display

df = pd.read_csv("some_data.csv")
pd.options.display.max_columns = None
display(df)

Или

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

Изменить: Pandas 0.11.0 назад

Это устарело, но в версиях Pandas старше 0.11.0 этот max_columnsпараметр указывается следующим образом:

pd.set_printoptions(max_columns=500)

Должно работать, если у вас не очень старая версия Pandas. Я обновил ответ ...
Исма

4
Не могу поверить, что это способ сделать это!
information_interchange

2
Если вы хотите сделать временную настройку, вы можете использовать, например, with pd.option_context("display.max_rows", 10, "display.max_columns", 5):(см. Получение и настройка параметров ).
Бенджамин Б.

35

Я знаю, что этот вопрос немного устарел, но в Jupyter Notebook с pandas 0.22.0 и Python 3 у меня работало следующее:

import pandas as pd
pd.set_option('display.max_columns', <number of columns>)

То же самое можно сделать и для строк:

pd.set_option('display.max_rows', <number of rows>)

Это экономит импорт IPython, и в документации pandas.set_option есть больше опций: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html


1
Вы можете использовать ключевое слово None в <количество столбцов>, если заранее не знаете количество столбцов.
kmundnic

9

Python 3.x для больших (но не слишком больших) фреймов данных

Может быть, потому что у меня более старая версия панд, но на ноутбуке Jupyter это работает для меня

import pandas as pd
from IPython.core.display import HTML

df=pd.read_pickle('Data1')
display(HTML(df.to_html()))

Пробовал это, но это испортило мою сессию jupyter, выходящую из памяти. У моего ПК есть SSD и 8 ГБ оперативной памяти ...
FLBKernel

@FLBKernel он не сделал этого со мной, возможно, ваш Dataframe намного больше моего. Какой у тебя выход? Вы пробовали другой метод и помогли вам? если так поделитесь своими знаниями. Спасибо.
rsc05

Я еще не нашел никакого метода, но сообщу вам, как только смогу решить эту проблему. И да, мой Dataframe, вероятно, был больше, поэтому позвольте отметить, что это не рекомендуется для больших Dataframe
FLBKernel

1
@FLBKernel Мой фрейм данных тоже был большим. Но я не знал, насколько большим он может быть. Я укажу на это. Благодарность!
rsc05

У меня 107,763 строк и 15 столбцов. Мы можем установить - возможно-, что более чем примерно 100 тыс. Строк и 15 столбцов этот ответ не рекомендуется. Хотя мне нравится название «большой (но не слишком большой)» :)
FLBKernel

5

Я рекомендую установить параметры отображения внутри диспетчера контекста, чтобы он влиял только на один вывод. Если вы также хотите распечатать "красивую" html-версию, я бы определил функцию и отобразил фрейм данных, dfиспользуя force_show_all(df):

from IPython.core.display import display, HTML

def force_show_all(df):
    with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'display.width', None):
        display(HTML(df.to_html()))

Как уже упоминали другие, будьте осторожны, вызывая это только для кадра данных разумного размера.


1

вы можете использовать pandas.set_option (), для столбца вы можете указать любой из этих параметров

pd.set_option("display.max_rows", 200)
pd.set_option("display.max_columns", 100)
pd.set_option("display.max_colwidth", 200)

Для полного столбца печати вы можете использовать вот так

import pandas as pd
pd.set_option('display.max_colwidth', -1)
print(words.head())

введите описание изображения здесь


0

Если вы хотите показать все строки, указанные ниже

pd.options.display.max_rows = None

Если вы хотите показать все столбцы, указанные ниже

pd.options.display.max_columns = None
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.