Как можно изменить формат для вывода из групповой операции в пандах, которая выдает научную запись для очень больших чисел?
Я знаю, как выполнять форматирование строк в Python, но я не могу понять, как применить его здесь.
df1.groupby('dept')['data1'].sum()
dept
value1 1.192433e+08
value2 1.293066e+08
value3 1.077142e+08
Это подавляет научную нотацию, если я преобразую в строку, но теперь мне просто интересно, как отформатировать строку и добавить десятичные дроби.
sum_sales_dept.astype(str)
python
pandas
floating-point
scientific-notation
number-formatting
horatio1701d
источник
источник
dtypes
ваши результаты?Ответы:
Конечно, ответ, который я привел в комментариях, не очень полезен. Вы можете указать свой собственный конвертер строк, например, так.
Я не уверен, что это предпочтительный способ сделать это, но это работает.
Преобразование чисел в строки исключительно для эстетических целей кажется плохой идеей, но если у вас есть веская причина, это один из способов:
источник
pandas.option_context
(см. Pandas.pydata.org/pandas-docs/stable/generated/… ).pd.set_option('display.float_format', lambda x: f'{x:,.3f}')
если вы хотите разделитель тысяч.Вот еще один способ сделать это, похожий на ответ Дэна Аллана, но без лямбда-функции:
или
источник
Вы можете использовать функцию округления только для подавления научной нотации для конкретного кадра данных:
или вы можете подавить это глобально:
источник
Если вы хотите стилизовать вывод фрейма данных в ячейке ноутбука Jupyter, вы можете установить стиль отображения для каждого фрейма данных:
Смотрите документацию здесь .
источник
Если вы хотите использовать значения, скажем, как часть csvfile csv.writer, числа могут быть отформатированы перед созданием списка:
источник