写入分隔文件时如何将数据帧的浮动列格式化为所需的小数位?

问题描述 投票:0回答:2

所以我的数据框有一堆定价列,其中包含 16 美元 99 美分的 16.99 等值。我希望我的定价准确到几美分。但在将其导出到 csv 时,如果美分是 10 的倍数(例如 16.50 变成 16.5),它会通过删除最后一个零来截断定价。对其进行格式化,甚至格式化然后将其解析为字符串都没有帮助:

for col in df.columns:
    if col.__contains__('USD'):
        df[col] = '$'+df[col].round(decimals=2).astype(str).str.strip()
df.to_csv('pricing.txt', '\t')

无论我将多少小数作为参数传递给那里,它都不起作用。当前的解决方法是编写一个具有条件格式的单独函数,但有没有办法通过

pandas
本身来完成此操作。

python pandas rounding
2个回答
4
投票

试试这个(如果你的列中有浮动):

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

0
投票

此解决方案会产生警告

© www.soinside.com 2019 - 2024. All rights reserved.