Description
Pandas version checks
-
I have checked that this issue has not already been reported.
-
I have confirmed this bug exists on the latest version of pandas.
-
I have confirmed this bug exists on the main branch of pandas.
Reproducible Example
import pandas as pd
df = pd.DataFrame({"A": [1., 2.], "B": [3., 4.]})
styler1 = df.style.format(precision=2)
styler2 = df.agg(["sum"]).style
styler3 = df.agg(["prod"]).style
print(styler1.concat(styler2).concat(styler3).to_string())
Issue Description
The new style.concat
option can be used to add styled dataframes to each other.
A user might want to add several dataframes in this manner.
The natural way to do it is styler1.concat(styler2).concat(styler3)
. However in this case, styler2 is silently discarded.
A workaround that give the expected output is to use styler1.concat(styler2.concat(styler3))
. I think that this method is not obvious, and can get ugly when the code is longer.
>>> print(styler1.concat(styler2.concat(styler3)).to_string()) # gets expected output
A B
0 1.00 3.00
1 2.00 4.00
sum 3.000000 7.000000
prod 2.000000 12.000000
>>> print(styler.concat(styler2).concat(styler3).to_string()) # styler2 is dropped
A B
0 1.00 3.00
1 2.00 4.00
prod 2.000000 12.000000
Expected Behavior
>>> print(styler.concat(styler2).concat(styler3).to_string())
A B
0 1.00 3.00
1 2.00 4.00
sum 3.000000 7.000000
prod 2.000000 12.000000
Installed Versions
INSTALLED VERSIONS
commit : fe93a83
python : 3.8.13.final.0
python-bits : 64
OS : Linux
OS-release : 4.4.0-19041-Microsoft
Version : #1237-Microsoft Sat Sep 11 14:32:00 PST 2021
machine : x86_64
processor : x86_64
byteorder : little
LC_ALL : None
LANG : en_US.UTF-8
LOCALE : en_US.UTF-8
pandas : 1.0.0rc0+8877.gfe93a83950
numpy : 1.23.4
pytz : 2022.5
dateutil : 2.8.2
setuptools : 65.5.0
pip : 22.3
Cython : 0.29.32
pytest : 7.1.3
hypothesis : 6.56.3
sphinx : 4.5.0
blosc : None
feather : None
xlsxwriter : 3.0.3
lxml.etree : 4.9.1
html5lib : 1.1
pymysql : 1.0.2
psycopg2 : 2.9.3
jinja2 : 3.0.3
IPython : 8.5.0
pandas_datareader: 0.10.0
bs4 : 4.11.1
bottleneck : 1.3.5
brotli :
fastparquet : 0.8.3
fsspec : 2021.11.0
gcsfs : 2021.11.0
matplotlib : 3.6.1
numba : 0.56.3
numexpr : 2.8.3
odfpy : None
openpyxl : 3.0.10
pandas_gbq : 0.17.9
pyarrow : 9.0.0
pyreadstat : 1.1.9
pyxlsb : 1.0.10
s3fs : 2021.11.0
scipy : 1.9.2
snappy :
sqlalchemy : 1.4.42
tables : 3.7.0
tabulate : 0.9.0
xarray : 2022.10.0
xlrd : 2.0.1
xlwt : 1.3.0
zstandard : 0.18.0
tzdata : None