Формат / подавление научной нотации из результатов агрегации Python Pandas
Как можно изменить формат вывода из операции groupby в pandas, которая производит научную нотацию для очень больших чисел. Я знаю, как сделать форматирование строк в python, но я в недоумении, когда дело доходит до его применения здесь.
df1.groupby('dept')['data1'].sum()
dept
value1 1.192433e+08
value2 1.293066e+08
value3 1.077142e+08
это подавляет научную нотацию, если я конвертирую в строку, но теперь мне просто интересно, как форматировать строку и добавлять десятичные знаки.
sum_sales_dept.astype(str)
4 ответа:
конечно, ответ, который я связал в комментариях, не очень полезен. Вы можете указать свой собственный конвертер строк следующим образом.
In [25]: pd.set_option('display.float_format', lambda x: '%.3f' % x) In [28]: Series(np.random.randn(3))*1000000000 Out[28]: 0 -757322420.605 1 -1436160588.997 2 -1235116117.064 dtype: float64
Я не уверен, что это предпочтительный способ сделать это, но это работает.
преобразование чисел в строки исключительно для эстетических целей кажется плохой идеей, но если у вас есть веская причина, это один из способов:
In [6]: Series(np.random.randn(3)).apply(lambda x: '%.3f' % x) Out[6]: 0 0.026 1 -0.482 2 -0.694 dtype: object
вот еще один способ сделать это, почти так же, как выше:
pd.options.display.float_format = '{:.2f}'.format Series(np.random.randn(3))