Source code for dsp_pandas.format

"""Format pandas display options for better readability."""

import pandas as pd
import pandas.io.formats.format as pf


[docs] def set_pandas_options( max_columns: int = 20, max_row: int = 60, min_row: int = 10, max_colwidth: int = 50, float_format: str = "{:,.3f}", ) -> None: """Update default pandas options for better display.""" pd.options.display.max_columns = max_columns pd.options.display.max_rows = max_row pd.options.display.min_rows = min_row pd.options.display.max_colwidth = max_colwidth set_pandas_number_formatting(float_format=float_format)
[docs] def set_pandas_number_formatting(float_format="{:,.3f}") -> None: """Format large numbers with commas and decimals.""" pd.options.display.float_format = float_format.format # https://pandas.pydata.org/pandas-docs/stable/reference/api/ # pandas.describe_option.html#pandas.describe_option pd.options.styler.format.thousands = "," # # https://github.com/pandas-dev/pandas/blob/main/pandas/io/formats/format.py#L1475 # Originally found: https://stackoverflow.com/a/29663750/9684872 try: # latest pandas verions base_class = pf.GenericArrayFormatter except AttributeError: # older pandas versions base_class = pf._GenericArrayFormatter class IntArrayFormatter(base_class): def _format_strings(self): formatter = self.formatter or "{:,d}".format fmt_values = [formatter(x) for x in self.values] return fmt_values try: pf.IntArrayFormatter pf.IntArrayFormatter = IntArrayFormatter except AttributeError: pf._IntArrayFormatter = IntArrayFormatter