Форматирование целых чисел pandas для отображения

Я видел это и это при форматировании чисел с плавающей запятой для отображения в пандах, но я заинтересован в том, чтобы делать то же самое для целых чисел.

Прямо сейчас, у меня есть

pd.options.display.float_format = '{:,.2f}'.format 

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

SeriesFormatter класс SeriesFormatter о котором я не смог найти никакой информации.

Альтернативно, если есть способ написать один форматировщик строк, который будет форматировать float как '{:,.2f}' и поплавки с нулевым десятичным десятичным символом как '{:,d}' , это тоже сработает.

One Solution collect form web for “Форматирование целых чисел pandas для отображения”

Вы можете использовать monkey-patch pandas.io.formats.format.IntArrayFormatter :

 import contextlib import numpy as np import pandas as pd import pandas.io.formats.format as pf np.random.seed(2015) @contextlib.contextmanager def custom_formatting(): orig_float_format = pd.options.display.float_format orig_int_format = pf.IntArrayFormatter pd.options.display.float_format = '{:0,.2f}'.format class IntArrayFormatter(pf.GenericArrayFormatter): def _format_strings(self): formatter = self.formatter or '{:,d}'.format fmt_values = [formatter(x) for x in self.values] return fmt_values pf.IntArrayFormatter = IntArrayFormatter yield pd.options.display.float_format = orig_float_format pf.IntArrayFormatter = orig_int_format df = pd.DataFrame(np.random.randint(10000, size=(5,3)), columns=list('ABC')) df['D'] = np.random.random(df.shape[0])*10000 with custom_formatting(): print(df) 

доходность

  ABCD 0 2,658 2,828 4,540 8,961.77 1 9,506 2,734 9,805 2,221.86 2 3,765 4,152 4,583 2,011.82 3 5,244 5,395 7,485 8,656.08 4 9,107 6,033 5,998 2,942.53 

в то время как вне with-statement :

 print(df) 

доходность

  ABCD 0 2658 2828 4540 8961.765260 1 9506 2734 9805 2221.864779 2 3765 4152 4583 2011.823701 3 5244 5395 7485 8656.075610 4 9107 6033 5998 2942.530551 
  • Как читать файл .xlsx с помощью библиотеки pandas в iPython?
  • pandas: как выбрать по частичной метке в индексе
  • Pandas DatetimeIndex от MongoDB ISODate
  • Как построить несколько графиков плотности на одном и том же рисунке в python
  • pandas - изменить df.index от float64 до unicode или string
  • Как быстро переназначить идентификаторы для последовательных номеров
  • Как работать с дублирующимися записями в Pandas Data Frame?
  • Получение более широкой информации в встроенной консоли PyCharm
  • Python - лучший язык программирования в мире.