astanin / python-tabulate

Pretty-print tabular data in Python, a library and a command-line utility. Repository migrated from bitbucket.org/astanin/python-tabulate.
https://pypi.org/project/tabulate/
MIT License
2.19k stars 165 forks source link

bug: Error when I print a table with colored data #289

Open Adamou02 opened 1 year ago

Adamou02 commented 1 year ago

Description

I colorized my float with basic Python feature :

row_data["reference"] = "\033[31m{}\033[0m".format(value_data_ref)

After few manipulations, I put these floats in a column of my Pandas Dataframe.

data_results = pd.DataFrame(data_results)
print(data_results)

Works well :

image Header are not well positioned, but Pd dataframe works well.

Then, I print the table with tabulate module.

print(tabulate(data_results, headers="keys", tablefmt="fancy_grid", maxcolwidths=30, showindex=False))

Error occurs here :

ValueError: could not convert string to float: '\x1b[31m965.3344\x1b[0m'

Reproduce

Use a column with formated data. In my case this row :

row_data["reference"] = "\033[31m{}\033[0m".format(value_data_ref)

Expected behavior

image

With numbers in column "reference" print in red.

Context

Adamou02 commented 1 year ago

This PR would solve my problem ! (#135)