写入分隔文件时如何将数据框的浮点列格式化为所需的小数位?
How to format float columns of dataframe to desired decimal places while writing into delimited file?
所以我的数据框有一堆定价列,其中包含 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
本身来完成。
试试这个(如果你的专栏中有浮动):
df[col] = df[col].map('${:,.2f}'.format)
所以我的数据框有一堆定价列,其中包含 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
本身来完成。
试试这个(如果你的专栏中有浮动):
df[col] = df[col].map('${:,.2f}'.format)