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

我有一个数据框,我最终使用to_excel方法写入excel。 其中一列是货币金额。 目前它是浮动的,我要完成的是把它写成货币。 但是 ,excel会读取列中的数据作为货币,而不是string(例如,您可以在列上执行计算),这一点很重要。

不pipe我尝试什么,excel都以string的forms读取列。 这是我试过的:

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) 

(当然,不是一个接一个地尝试这些)。

你能帮忙吗? 谢谢! 🙂

货币是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()