为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用列的格式字符串显示浮点数的pandas DataFrame?

如何使用列的格式字符串显示浮点数的pandas DataFrame?

忽然笑 2019-10-06 12:55:06
我想使用print()和IPython 显示给定格式的熊猫数据框display()。例如:df = pd.DataFrame([123.4567, 234.5678, 345.6789, 456.7890],                  index=['foo','bar','baz','quux'],                  columns=['cost'])print df         costfoo   123.4567bar   234.5678baz   345.6789quux  456.7890我想以某种方式强迫这样做         costfoo   $123.46bar   $234.57baz   $345.68quux  $456.79无需修改数据本身或创建副本,只需更改其显示方式即可。我怎样才能做到这一点?
查看完整描述

3 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

import pandas as pd

pd.options.display.float_format = '${:,.2f}'.format

df = pd.DataFrame([123.4567, 234.5678, 345.6789, 456.7890],

                  index=['foo','bar','baz','quux'],

                  columns=['cost'])

print(df)

产量


        cost

foo  $123.46

bar  $234.57

baz  $345.68

quux $456.79

但这仅在您希望每个浮点数都用美元符号格式化时才有效。


否则,如果您只想为某些浮点数设置美元格式,那么我认为您必须预先修改数据框(将这些浮点数转换为字符串):


import pandas as pd

df = pd.DataFrame([123.4567, 234.5678, 345.6789, 456.7890],

                  index=['foo','bar','baz','quux'],

                  columns=['cost'])

df['foo'] = df['cost']

df['cost'] = df['cost'].map('${:,.2f}'.format)

print(df)

产量


         cost       foo

foo   $123.46  123.4567

bar   $234.57  234.5678

baz   $345.68  345.6789

quux  $456.79  456.7890


查看完整回答
反对 回复 2019-10-06
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

我喜欢将pandas.apply()与python format()结合使用。


import pandas as pd

s = pd.Series([1.357, 1.489, 2.333333])


make_float = lambda x: "${:,.2f}".format(x)

s.apply(make_float)

而且,它可以轻松地用于多列...


df = pd.concat([s, s * 2], axis=1)


make_floats = lambda row: "${:,.2f}, ${:,.3f}".format(row[0], row[1])

df.apply(make_floats, axis=1)


查看完整回答
反对 回复 2019-10-06
  • 3 回答
  • 0 关注
  • 1378 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信