为什么熊猫的style.format在spyder中不起作用?

问题描述 投票:0回答:1

也许我错过了一些东西,我有这个:

import pandas as pd

series1 = pd.Series({'DEPOSITOS': 353254})
series2 = pd.Series({'DEPOSITOS': 54464.43})
series3 = pd.Series({'COLOCACIONES': 6381763761})
series4 = pd.Series({'COLOCACIONES': 687513761})
series5 = pd.Series({'%PROV': 0.95})
series6 = pd.Series({'%PROV': 0.25})

top100v3 = pd.DataFrame([series1, series2, series3,series4, series5, series6])

top100v3.style.format({"DEPOSITOS": "{:,.0f}"})

但是当我运行它时,它不会更改数据帧(top100v3),它只会返回:

C:\ Users \ yvs \ Anaconda3 \ lib \ site-packages \ pandas \ core \ ops \ array_ops.py:253:FutureWarning:逐元素比较失败;而是返回标量,但将来将执行元素比较res_values =方法(rvalues)出[1]:

python pandas spyder
1个回答
0
投票

显然style.format使用html和css支持,而spyder不支持,但是jupyer notebook支持,因此如果我想保留spyder,我必须更改将格式应用于列的方式

#for one column
top100v3["DEPOSITOS"] = top100v3["DEPOSITOS"].apply(lambda x : "{:,.0f}".format(x))

#for many columns  
col_formatlist = ["DEPOSITOS", "COLOCACIONES"]

for col in col_formatlist:
top100v3[col] = top100v3[col].apply(lambda x: f'{x:,.0f}'.format(x))

top100v3["%PROV"] = top100v3["%PROV"].apply(lambda x: "{:.2%}".format(x))

有关更多格式,请检查此https://mkaz.blog/code/python-string-format-cookbook/

© www.soinside.com 2019 - 2024. All rights reserved.