Как ограничить ширину/высоту столбца индекса при отображении кадра данных pandas?

У меня есть фрейм данных, который выглядит так:

df = pd.DataFrame(data=list(range(0,10)),
                  index=pd.MultiIndex.from_product([[str(list(range(0,1000)))],list(range(0,10))],
                                                   names=["ind1","ind2"]),
                  columns=["col1"])
df['col2']=str(list(range(0,1000)))

К сожалению, отображение приведенного выше фрейма данных выглядит так:

Если я пытаюсь установить: pd.options.display.max_colwidth = 5, то col2 ведет себя и отображается в одной строке, но ind1 не ведет себя:

Поскольку ind1 является частью мультииндекса, мне все равно, что он занимает несколько строк, но я хотел бы ограничить себя по ширине. Если бы я мог предписать, чтобы каждая строка также занимала высоту не более одной строки, это тоже было бы здорово. Меня не волнует, что отдельные ячейки усекаются при отображении, потому что я предпочитаю меньше прокручивать в любом направлении, чтобы увидеть ячейку.

Я знаю, что могу создать свой собственный HTML-дисплей. Это здорово и все такое, но я думаю, что это слишком сложно для моего варианта использования, когда просто нужны столбцы меньшей ширины для анализа данных в ноутбуках Jupyter. Тем не менее, такое решение может помочь другим подобным вариантам использования, если вы склонны его написать.

То, что я ищу, это какой-то параметр, который, как я думал, это pd.options.display.max_colwidth, который ограничивает ширину столбца, даже если это индекс. Что-то, что отключило бы перенос длинных текстов, вероятно, также помогло бы с той же проблемой.

Я также пробовал просто печатать без индекса df.style.hide_index(), в сочетании с pd.options.display.max_colwidth = 5, но тогда col2 перестает себя вести:

Примерно сейчас у меня закончились идеи. Какие-либо предложения?

14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
Python PyPDF2 - запись метаданных PDF
Python PyPDF2 - запись метаданных PDF
Python скрипт, который будет записывать метаданные в PDF файл, для этого мы будем использовать PDF ридер из библиотеки PyPDF2 . PyPDF2 - это...
Переменные, типы данных и операторы в Python
Переменные, типы данных и операторы в Python
В Python переменные используются как место для хранения значений. Пример переменной формы:
Почему Python - идеальный выбор для проекта AI и ML
Почему Python - идеальный выбор для проекта AI и ML
Блог, которым поделился Harikrishna Kundariya в нашем сообществе Developer Nation Community.
Как автоматически добавлять котировки в заголовки запросов с помощью PyCharm
Как автоматически добавлять котировки в заголовки запросов с помощью PyCharm
Как автоматически добавлять котировки в заголовки запросов с помощью PyCharm
Анализ продукта магазина на Tokopedia
Анализ продукта магазина на Tokopedia
Tokopedia - это место, где продавцы могут продавать свои товары. Товар должен быть размещен на витрине, чтобы покупателям было легче найти товар...
1
0
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот один из способов сделать это:

import pandas as pd

df = pd.DataFrame(
    data=list(range(0, 10)),
    index=pd.MultiIndex.from_product(
        [[str(list(range(0, 1000)))], list(range(0, 10))], names=["ind1", "ind2"]
    ),
    columns=["col1"],
)
df["col2"] = str(list(range(0, 1000)))

В следующей ячейке Jupyter запустите:

df.style.set_properties(**{"width": "10"}).set_table_styles(
    [{"selector": "th", "props": [("vertical-align", "top")]}]
)

Что выводит:

Другие вопросы по теме