Как предотвратить вертикальные полосы прокрутки при выводе кадра данных Pandas в Jupyter Notebook? - PullRequest
0 голосов
/ 06 ноября 2019

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

df.head()

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

Это было бы хорошо, если бы я мог в частном порядке обмениваться данными в виде файлов .html или .ipynb, но мне нужно загрузить их в виде статического файла PDF. В формате pdf эти фреймы данных просто обрезаются.

Это очень длинный блокнот с несколькими случаями, когда это происходит. Что я могу сделать, чтобы исправить это?

Спасибо

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Пожалуйста, уточните:

  • Множество столбцов не должны давать вам вертикальную полосу прокрутки ... много строк будет, но df.head () покажет только первые 5 строк по умолчанию,для большого количества столбцов df.head () показывает первые 10 и последние 10 столбцов, без полосы прокрутки (по крайней мере, для меня).

edit извините, только что понял, что вы должны использовать:

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

'Мне нужно скачать его в виде статического файла PDF.'

  • Используете ли вы печать вашего браузера в формате PDF, чтобы получить вид экрана своего ноутбука Jupyter? Если это так, то есть лучшие способы получить статическую картину таблицы данных из Python. df.head () "... полезно для быстрого тестирования, если ваш объект содержит правильный тип данных."- из документации.

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

, если вы хотите остатьсяв блокноте и контролируйте количество столбцов, которые будут напечатаны (максимум 15, прежде чем он автоматически обернутся)

# make up a wide empty datframe
col_names = ['a_' + str(x) for x in range(37)]
df = pd.DataFrame(columns=col_names, index=range(10))

section_width = 10 # set the number of columns you want to print - not that more than 15 

for section_no in range(int(df.shape[1] / section_width + 1)) :
    print(df.iloc[0:5, section_no * section_width : (section_no + 1) * section_width])
# if you want more or less than 5 rows then adust the numbers in .iloc[0:5]

В любом случае, если вы можете дать нам более подробную информацию о том, чего вы пытаетесь достичь, мы могли бы бытьлучше в состоянии помочь - Goodluck

0 голосов
/ 07 ноября 2019

Вы пытались переключать прокрутку в параметрах ячейки? Вот так:

enter image description here

Можно сделать для отдельных ячеек и всех ячеек, как вы видите на моем скриншоте.

...