#python #pandas
#python #панды
Вопрос:
рассмотрим pd.Series
s
s = pd.Series([-1.23, 4.56])
s
0 -1.23
1 4.56
dtype: float64
Я могу форматировать числа с плавающей запятой с display.float_format
помощью опции pandas
with pd.option_context('display.float_format', '${:,.2f}'.format):
print s
0 $-1.23
1 $4.56
dtype: float64
Но как мне отформатировать его таким образом, чтобы я получал -
знак перед $
0 -$1.23
1 $4.56
dtype: float64
Ответ №1:
Вы можете заменить функцию форматирования своей собственной. Ниже приведена лишь демонстрация того, как это работает, вы можете настроить его под свои нужды:
def formatfunc(*args, **kwargs):
value = args[0]
if value >= 0:
return '${:,.2f}'.format(value)
else:
return '-${:,.2f}'.format(abs(value))
with pd.option_context('display.float_format', formatfunc):
print(s)
И вы получаете:
0 -$1.23
1 $4.56
dtype: float64