pandas(从0.20.1开始)不允许以简单的方式重写默认整数格式。它在^{}(函数labmda)中硬编码:class IntArrayFormatter(GenericArrayFormatter):
def _format_strings(self):
formatter = self.formatter or (lambda x: '% d' % x)
fmt_values = [formatter(x) for x in self.values]
return fmt_values
我假设您真正需要的是如何重写所有整数的格式:replace(“monkey patch”)theIntArrayFormatter以打印由逗号分隔的数千个整数值,如下所示:import pandas
class _IntArrayFormatter(pandas.io.formats.format.GenericArrayFormatter):
def _format_strings(self):
formatter = self.formatter or (lambda x: ' {:,}'.format(x))
fmt_values = [formatter(x) for x in self.values]
return fmt_values
pandas.io.formats.format.IntArrayFormatter = _IntArrayFormatter
注意:在0.20.0之前,形成剂在pandas.formats.format。
在0.18.1之前,格式化程序位于pandas.core.format。
侧边
对于漂浮物,您不需要跳过这些环,因为它有一个configuration option:display.float_format: The callable should accept a floating point number and return a string with the desired format of the number. This is used in some places like SeriesFormatter. See core.format.EngFormatter for an example.