Как добавить горизонтальную прокрутку в стиль Pandas в Jupyter

#python #pandas #jupyter-notebook

#python #pandas #jupyter-записная книжка

Вопрос:

 import pandas as pd

>>> d = {'col1': [1, 2], 'col2': [3, 4], ... , 'col20': [5, 6]}
>>> df = pd.DataFrame(data=d)
>>> df
  

В приведенном выше примере у меня есть горизонтальная прокрутка, но

 >>> df.style
  

нет прокрутки.

Как я могу добавить его для работы с большим количеством столбцов и использовать форматирование стиля?

Обновить

Есть прокрутка

Нет прокрутки

Ответ №1:

Если я вас правильно понял:

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

Комментарии:

1. Работает для df, но не для >>> df.style

Ответ №2:

IIUC, вам нужно изменить pd.options.display.max_columns :

 import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,100,(2,200)))  
df
  

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

Теперь давайте изменим параметр max_columns

 pd.options.display.max_columns=300
df
  

Вывод:

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

Комментарии:

1. Работает для df, но не для >>> df.style

2. @DmitryD можете ли вы добавить полный код, включающий ваш вывод в вопрос?

3. добавлен вывод к вопросу

4. Хорошо… какой интерфейс вы используете? Для меня это не похоже на Jupyter notebook. это так?

5. Это хранилище данных, но с ядром Jupyter та же проблема

Ответ №3:

Добавление pd.set_option('display.max_columns', 500) не работает со стилем pandas.

Вам нужно будет добавить блок css, содержащий overflow: auto и регулирующий ширину width: 500px в соответствии с требованиями.

Ниже приведен пример блока кода:

 import pandas as pd
import numpy as np
from IPython.display import display, HTML

custom_styling = [
        {
            "selector": "th",
            "props": [
                ("background", "#00abe7"),
                ("color", "white"),
                ("font-family", "tahoma"),
                ("text-align", "center"),
                ("font-size", "15px"),
            ],
        },
        {
            "selector": "td",
            "props": [
                ("font-family", "tahoma"),
                ("color", "black"),
                ("text-align", "left"),
                ("font-size", "15px"),
            ],
        },
        {
            "selector": "tr:nth-of-type(odd)",
            "props": [
                ("background", "white"),
            ],
        },
        {"selector": "tr:nth-of-type(even)", "props": [("background", "#e8e6e6")]},
        {"selector": "tr:hover", "props": [("background-color", "#bfeaf9")]},
        {"selector": "td:hover", "props": [("background-color", "#7fd5f3")]},
    ]

df = pd.DataFrame(np.random.randint(0,100,(2,200)))  
s1 = df.style
s1.set_table_styles(custom_styling)
s1.hide(axis="index")
# NOTE: Adding div Style with overflow!
display(HTML("<div style='width: 500px; overflow: auto;'>"  
             s1.to_html()  
             "</div>"))
  

Вывод (скриншот)