Rya*_*eid 13 python rounding dataframe python-3.x pandas
我想要做的是使其无论值如何,都显示 2 位小数。
到目前为止我已经尝试过:
DF['price'] = DF['price'].apply(lambda x: round(x, 2))
Run Code Online (Sandbox Code Playgroud)
然而,问题是我希望以 2 位小数显示所有内容,但像 0.5 这样的值仍保留 1 位小数,因为它们不需要四舍五入。
我可以应用一个函数来提供以下类型的输出:
Current After Changes
0 0.00
0.5 0.50
1.01 1.01
1.133333 1.13
Run Code Online (Sandbox Code Playgroud)
理想情况下,这些值将被四舍五入,但如果这就是全部有效的话,我愿意截断。
Zom*_*raz 15
如果你只想修改值的格式而不在 pandas 中进行任何操作,你应该执行以下指令:
pd.options.display.float_format = "{:,.2f}".format
Run Code Online (Sandbox Code Playgroud)
这迫使它不使用科学记数法(指数记数法)并始终显示小数点后 2 位。它还添加逗号。
您应该可以在这里获得更多信息:
https://pandas.pydata.org/docs/user_guide/options.html#number-formatting
例子:
0.0012 0.00
0.0123 0.01
1.2345 1.23
12.345 12.35
100 100.00
1234567890.123456 1,234,567,890.12
Run Code Online (Sandbox Code Playgroud)
小智 12
尝试:
import pandas as pd
pd.set_option('display.precision', 2)
Run Code Online (Sandbox Code Playgroud)
这会导致它在适当的时候使用科学(指数)表示法,并保留 2 位小数。它根据每列决定是否使用科学计数法,因此如果 1 个值需要科学计数法,则整个列都会以这种方式显示。
例子:
0.0012 1.23e-03
0.0123 1.23e-02
100 1.00e+02
1234567890.123456 1.23e+09
Run Code Online (Sandbox Code Playgroud)
您必须设置 pandas 显示的精度。导入 pandas 后将其放在脚本顶部:
import pandas as pd
pd.set_option('precision', 2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32989 次 |
| 最近记录: |