在以正确的方式写入 Excel 之前,将 Pandas 中的浮点数转换为货币

Opt*_*esh 2 python excel currency pandas

我有一个数据框,我最终要使用 to_excel 方法写入 excel。其中一列代表货币金额。目前它是浮动的,我要完成的是将其写为货币。 但是,重要的是 excel 将列中的数据作为货币而不是字符串读取(例如,您可以对列执行计算)。

无论我尝试什么,excel 都会将该列作为字符串读取。这是我尝试过的:

df['Monetary_Field'] = df['Monetary_Field'].map(lambda x: '$%2.0f' % x)
df['Monetary_Field'] = df['Monetary_Field'].map(lambda x: '${:20,.0f}'.format(x))
df['Monetary_Field'] = df['Monetary_Field'].map('${:,.2f}'.format)
Run Code Online (Sandbox Code Playgroud)

(当然,分别尝试这些,而不是一个接一个)。

你能帮忙吗?谢谢!:)

chr*_*isb 8

货币是 Excel 中的一种格式,数据本身仍然表示为相同的数字。

如果您想控制 Excel 中的格式,您可以执行以下操作,访问底层 XlsxWriter 对象并指定格式。我基于链接的博客文章,其中有更多解释和示例。 http://pbpython.com/improve-pandas-excel-output.html

In [95]: writer = pd.ExcelWriter('out.xlsx')

In [96]: df.to_excel(writer, sheet_name='report')

In [97]: wb = writer.book

In [98]: ws = writer.sheets['report']

In [99]: money_fmt = wb.add_format({'num_format': '$#,##0'})

In [100]: ws.set_column('B:B', 12, money_fmt)
Out[100]: 0

In [101]: writer.save()
Run Code Online (Sandbox Code Playgroud)