Я должен представить разницу между двумя процентами, используя Python. Например, разница между 40% и 41,234% составляет 1,234 процентных пункта или 1,234 п.п.
Если бы я хотел отформатировать увеличение в процентах, я бы использовал спецификатор формата {:.0%}
:
increase = 0.01234
"{:+.3%} ".format(increase)
>>> "+1.234 %"
То, что я ищу
Спецификатор формата, который заменяет %
на pp
, например:
"{some_specifier} ".format(increase)
>>> "+1.234 pp"
То, что я не ищу для
Я знаю, что могу использовать такие f-строки
f"{increase * 100:+.3f} pp"
>>> "+1.234 pp"
, но я специально ищу спецификатор формата, который можно использовать с .format()
.
Edit
Я понял, что здесь может быть полезно немного предыстории. В моей реализации increase
может представлять обычное число с плавающей запятой, целое число, процент или процентную точку. Чтобы получить правильное представление, я использовал отображение переменного формата, которое выглядит примерно так:
format_mapping = {
"var_x": "{:,.0f}", # for large numbers
"var_y": "{:+.3f}", # for small numbers
"var_z": "{:.4%}", # for percentages
}
Имена переменных представляют имена столбцов pandas фрейма данных my_data
, так что я затем можно применить форматирование к этим столбцам для отчетности
for var in my_data.columns:
fmt = format_mapping[var]
my_data[var] = pd.Series(fmt.format(value) for value in my_data[var])