Я хотел бы отобразить pandas dataframe с использованием заданного формата print()
и IPython display()
. Например:
df = pd.DataFrame([123.4567, 234.5678, 345.6789, 456.7890],
index=['foo','bar','baz','quux'],
columns=['cost'])
print df
cost
foo 123.4567
bar 234.5678
baz 345.6789
quux 456.7890
Я хотел бы как-то принудить это в печать
cost
foo $123.46
bar $234.57
baz $345.68
quux $456.79
без необходимости изменять сами данные или создавать копию, просто измените способ их отображения.
Как я могу это сделать?
cost
единственный столбец с плавающей запятой, или есть другие столбцы с плавающей запятой, которые не должны быть отформатированы$
?Ответы:
доходность
но это работает, только если вы хотите, чтобы каждый float был отформатирован со знаком доллара.
В противном случае, если вы хотите использовать форматирование доллара только для некоторых чисел с плавающей запятой, я думаю, вам придется предварительно изменить рамку данных (преобразовав эти числа с плавающей запятой в строки):
доходность
источник
with pd.option_context('display.float_format', '${:,.2f}'.format'):
'
перед закрывающей скобкой на комментарии @AndreHolzner; в противном случае это работает как шарм!Если вы не хотите изменять фрейм данных, вы можете использовать пользовательский форматер для этого столбца.
доходность
источник
pd.options.display.float_format = '${:,.2f}'.format
Начиная с Pandas 0.17 в настоящее время существует система стилей, которая по существу предоставляет отформатированные представления DataFrame с использованием строк формата Python :
который отображает
Это объект просмотра; сам DataFrame не меняет форматирование, но обновления в DataFrame отражаются в представлении:
Однако, похоже, у него есть некоторые ограничения:
Добавление новых строк и / или столбцов на месте, кажется, вызывает несогласованность в стилизованном представлении (без добавления меток строк / столбцов):
который выглядит хорошо, но:
Форматирование работает только для значений, а не для записей индекса:
источник
Как и в случае с unutbu, вы также можете использовать
applymap
следующее:источник
df.to_csv()
чтобы убедиться, что все столбцы в моем.csv
файле имеют одинаковую «ширину цифры». Спасибо!Мне нравится использовать pandas.apply () с python format ().
Кроме того, он может быть легко использован с несколькими столбцами ...
источник
Вы также можете установить локаль для своего региона и установить float_format для использования формата валюты. Это автоматически установит знак $ для валюты в США.
источник
резюме:
источник