Отображение DataFrame pandas с форматированием в Python
Быстрый ответ
Для форматирования чисел с плавающей точкой в pandas в определенном виде, можно использовать метод DataFrame.style.format
с помощью словаря. Укажите имя столбца и соответствующую строку формата для связи форматирования с конкретными столбцами. Например, для отображения чисел с двумя знаками после запятой воспользуйтесь следующим кодом:
df = pd.DataFrame({'A': [1\.123, 2.456], 'B': [3\.789, 4.012]})
formatted_df = df.style.format({'A': "{:.2f}", 'B': "{:.2f}"})
Таким образом, строки в столбцах 'A' и 'B' будут отформатированы до двух десятичных знаков.
Формат здесь, формат там (но с особенностями)
Хотите, чтобы все числа с плавающей точкой в pandas отображались в определенном формате? Установите глобальный формат для таких столбцов следующим образом:
pd.options.display.float_format = '${:,.2f}'.format
Однако, иногда требуется индивидуальный подход к форматированию отдельных столбцов. В таких случаях можно использовать методы to_string
или style.format
. Например, для добавления знака доллара перед числами примените такой код:
df.to_string(formatters={'Price': '${:,.2f}'.format})
или
df.style.format({'Price': "${:,.2f}"})
Удобство форматированных столбцов
Создайте столбец в DataFrame с отформатированными значениями. Это упростит анализ данных:
df['Formatted Price'] = df['Price'].map('${:,.2f}'.format)
Такой подход позволяет сохранить исходные данные в том виде, в котором они были, и в то же время делает визуальное восприятие данных более удобным.
Временная природа форматов
Функция pd.option_context
позволяет временно менять форматы, которые возвращаются к исходному виду после выполнения кода:
with pd.option_context('display.float_format', '${:,.2f}'.format):
print(df)
Это отлично подходит для ситуаций, когда вам нужно временно изменить формат, например, при генерации отчетов.
Индивидуализация форматирования DataFrame
Если вам необходимо полное форматирование всех данных в DataFrame, используйте метод .applymap
. А метод .map
позволяет работать с каждым значением отдельно, не требуя при этом создания новых столбцов.
Визуализация
Восприимайте свой DataFrame как галерею искусства, где каждое число с плавающей точкой освещается определенным форматом:
Управление форматами Ваша галерея
|-----------------------------| _------------------------_
| Формат: "{:.2f}" | | 1.23 |
| Формат: "{:+.2f}" | | +1.23 |
| Формат: "{:.0f}" | | 1 |
| Формат: "{:.1f}" | | 1.2 |
Таким образом, каждое значение будет выглядеть неповторимо, в соответствии с выбранным вами "освещением".
Нюансы стилизации
Струй в pandas —это мощный инструмент, но с некоторыми особенностями: он не влияет на индекс и на хранение данных в DataFrame. Нужно помнить, что примененное форматирование — временное, и при добавлении новых данных к DataFrame необходимо убедиться, что формат обновляется соответственно.
Для сложных задач в первую очередь рекомендуется обращаться к документации, ссылки на которую приведены в разделе Полезные материалы.
Полезные материалы
- pandas.DataFrame.style — документация pandas 2.2.0 — Здесь вы найдете всю информацию о механизме стилизации в pandas.
- Визуализация таблиц — документация pandas 2.2.0 — Узнайте, как улучшить визуальное представление ваших данных.
- python – Как отобразить DataFrame pandas с числами с плавающей точкой с помощью строки формата для столбцов? – Stack Overflow — Обсуждение вопроса форматирования чисел в DataFrame на Stack Overflow.
- DataFrame pandas: Работа с данными становится еще интереснее – Real Python — Исследуйте мир форматирования данных в pandas.
- Опции и настройки — документация pandas 2.2.0 — Изучите, как
pandas.set_option()
может помочь в форматировании данных. - Форматирование строк – Python – mkaz.blog — Подробное рассмотрение работы со строками и числами с плавающей точкой в Python.
- Стилизация с помощью Pandas – Practical Business Python — Как стилизация может трансформировать представление данных в pandas.