我正在尝试制作Pandas系列:对于所有的值,我想添加千位分隔符,并将小数位限制为两位。另外,对于负值,我想用圆括号将其括起来,而不是使用-
符号。因此,输出应该类似于'20,000.00', '(152,111.12)'
等。
我知道f-string方法有效因为当我运行
val = 20000
f'{val:,.2f}'
它给了我正确的结果'20,000.00'
。但是当我试图创建一个函数并将其应用于Pandas中的整个列时:
def format_pnl(value):
# Format the value as a string with thousand separators and 2 decimal places
formatted_value = f"{value:, .2f}"
# If the value is negative, wrap it in parentheses
if value < 0:
formatted_value = f"({formatted_value})"
return formatted_value
我得到了ValueError:无效的格式说明符。这对我来说真的是难以置信,因为格式说明符绝对有效。我在这里错过了什么?
2条答案
按热度按时间bf1o4zei1#
您在逗号和句点之间添加了一个空格。
093gszye2#
您可以很容易地执行此操作并将其应用于特定列