September 20, 2021

Салон красоты для Pandas

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

Сначала создадим тренировочные данные:

import pandas as pd
import numpy as np
np.random.seed(0)
df = pd.DataFrame(np.random.normal(loc=5, scale=10, size=(100,100)))
df

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

pd.options.display.max_columns, pd.get_option("display.max_columns")

Максимальное количество колонок

Можно задать тоже двумя способами - присвоив соответствующее значение свойству pd.options.display.max_columns и вызвав функцию set_option (c аргументом display.max_columns и целевой величиной):

pd.options.display.max_columns=5
df
pd.set_option("display.max_columns", 9)
df

Максимальное количество строк

Задается аналогично, только используемое свойство - display.max_rows:

Сброс до дефолтных значений

Установленные значения могут быть сброшены до заданных по умолчанию с помощью функции reset_options:

pd.reset_option("display.max_rows")
df

Ограничение точности содержимого

Для этих целей предназначено свойство precision:

pd.set_option("precision", 2)
df

Максимальная ширина колонки

Это свойство (max_colwidth) представляет особенную значимость для строчных данных, так как ширина по умолчанию ограничивает возможности по их исследованию, сравните:

df = pd.DataFrame(
    np.array(
        [
            ["str1", "str2"*10, "bim", "long string"],
            ["horse", "cow", "banana", "str3"*15],
        ]
    )
)
df
pd.set_option("max_colwidth", 500)
df

Максимальная длина последовательности

Задается свойством max_seq_items:

pd.options.display.max_seq_items = 15
td = pd.timedelta_range('1 days', '5 days', freq='H')
td