From 64e480b163ea434411eb659e5374eb0b50c9c318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Fri, 25 Oct 2019 14:58:32 +0000 Subject: [PATCH] --- pandalatex.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 pandalatex.py diff --git a/pandalatex.py b/pandalatex.py new file mode 100644 index 0000000..5acbf7d --- /dev/null +++ b/pandalatex.py @@ -0,0 +1,24 @@ +def latex_max(data, bgcolor='yellow', fgcolor="black", ignore=['AvgContent',]): + ''' + highlight the maximum in a Series or DataFrame + ''' + txt = '{:.3f}' + attr = '\textbf{{{}}}' + attr_max = '\colorbox{{' + bgcolor + '}}{{\textcolor{{' + fgcolor + '}}{{{}}}}}' +# print(data) + is_max = data >= data.drop(ignore).max() + mx = data.drop(ignore).max() + real_mx = data.max() + attrs = [] + for v in data: + a = txt.format(v) + if v == mx: + a = attr.format(a) + if v == real_mx: + a = attr_max.format(a) + attrs.append(a) + return pd.Series(attrs, index=data.index) + +def to_latex(df, *args, **kwargs): + with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'display.max_colwidth', -1): + print(df.apply(lambda x: latex_max(x, *args, **kwargs), axis=1).to_latex(escape=False)) \ No newline at end of file