【发布时间】:2021-04-20 12:50:09
【问题描述】:
我有这个数据,“VALOR”是浮点数:
| Periodo | VALOR |
|---|---|
| 32021 | 1096.14 |
| 32021 | 3835.44 |
| 32021 | 2207.90 |
| 32021 | 389.10 |
我正在尝试将十进制“点”更改为“逗号”,这很好。
但是我需要保存2个小数,当我转换它时,它会在最后一个小数为0时消失。
df['VALOR'] = np.round(df['VALOR'], decimals=2).astype(str)
df['VALOR'] = df['VALOR'].str.replace('.',',')
df.head()
| Periodo | VALOR |
|---|---|
| 32021 | 1096,14 |
| 32021 | 3835,44 |
| 32021 | 2207,9 |
| 32021 | 389,1 |
如何在这里获得两位小数?
也试过了:
pd.options.display.float_format = '{:,.2f}'.format
还有这个
df['VALOR'] = df['VALOR'].apply(lambda x: locale.format('%.2f', x))
他们都没有工作。我需要将小数转换为逗号并保留 2 位小数。
也许可以解决一些问题?喜欢将我的系统更改为 UTF-8?已经尝试了..但还没有。
问候,
谷内
【问题讨论】:
-
如果要将其存储为数字类型,则不要执行任何操作。逗号是字符串 representation 问题。每当您需要以人类可读的格式(如十进制数字、二进制或十六进制或其他)输出时,您都应该处理它——那是 not担心存储数字。
-
您好,感谢您的回复。我需要将其保存为字符串。所以我们没有系统之间的转换问题
-
我认为这是一种误解。如果您将其存储为数字,那么 that 是您没有转换问题的保证。字符串因地区差异而模棱两可,数字则不然。
-
"你好,谢谢回复。我需要将它保存为字符串。所以我们没有系统之间的转换问题"否; “所以我们在系统之间没有转换问题”正是您必须将其保存为作为数字的原因。让每个系统根据自己的规则在本地将其显示为字符串。根本不需要转换,除非您不遗余力地创建转换(这是错误的来源)。
-
很抱歉不同意,但字符串是不可变的。这是我必须在联邦州数据库中上传的内容,并且需要以字符串的确切格式