Подтвердить что ты не робот

Как установить значение pandas данных в левом/правом выравнивании данных?

Я использую pd.set_option("display.colheader_justify","right") для установки заголовка столбца. Но я не могу найти параметр для данных с помощью pd.describe_option().

Как установить данные в пределах кадра данных, отображая выравнивание влево или вправо для каждого столбца? Или, можно ли определить шаблон формата для отображения всей строки?

4b9b3361

Ответ 1

Если вы хотите изменить отображение в Jupyter Notebook, вы можете использовать функцию Style.

# Test data
df = DataFrame({'text': ['foo', 'bar'],
                 'number': [1, 2]})

df.style.set_properties(**{'text-align': 'right'})

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

Ответ 2

вы можете управлять им в новом контексте:

with pd.option_context('display.colheader_justify','right'):
    ...

Ответ 3

В моей ситуации у меня есть оболочка класса вокруг моего Pandas DataFrame. Это позволяет мне выровнять строку вывода DataFrame, настроив метод обёртки __str__().

Вот как я решил проблему для моего приложения на основе ответа Unutbu на аналогичный вопрос. Pandas DataFrame ссылается на self.data:

def __str__(self):
    """
    Return the test stats report as a single string
    with left-justified columns.

    """
    # Columns containing boolean values need different format strings
    # to avoid 'ValueError: Invalid format specifier' exceptions.
    BOOL_COLUMNS = ['success',]

    formatters = {}
    for li in list(self.data.columns):
        if li in BOOL_COLUMNS:
            form = "{{!s:<5}}".format()
        else:
            max = self.data[li].str.len().max()
            form = "{{:<{}s}}".format(max)

        formatters[li] = functools.partial(str.format,form)

    return self.data.to_string(formatters=formatters, index=False)

Ответ 4

Ответ, данный @Romain, великолепен, но я хотел бы обобщить некоторые комментарии:

# Test data
df = DataFrame({'text': ['foo', 'bar'],'number': [1, 2]})

dfStyler = df.style.set_properties(**{'text-align': 'left'})
dfStyler.set_table_styles([dict(selector='th', props=[('text-align', 'left')])])

выровняет весь текст таблицы и заголовки столбцов.