如何为 Pandas 系列中的每个值重新训练 2 位小数? (我正在处理纬度和经度)。 dtype 是 float64.
series = [-74.002568, -74.003085, -74.003546]
我尝试使用 round 函数,但顾名思义,它是四舍五入的。我查看了 trunc() 但这只能删除所有小数。然后我想为什么不尝试运行一个 For 循环。我尝试了以下方法:
for i in series:
i = "{0:.2f}".format(i)
我能够毫无错误地运行代码,但它没有以任何方式修改数据。
预期输出如下:
[-74.00, -74.00, -74.00]
任何人都知道如何实现这一点?谢谢!
series = [-74.002568, -74.003085, -74.003546]
["%0.2f" % (x,) for x in series]
['-74.00', '-74.00', '-74.00']
它将您的数据转换为
string
/object
数据类型。它仅用于显示目的。如果你想将它用于计算目的,那么你可以将它转换为浮动。然后只有一位小数是可见的。
[float('{0:.2f}'.format(x)) for x in series]
[-74.0, -74.0, -74.0]
这是一种方法
假设你的意思是 pandas.Series,如果它是真的那么
# you indicated its a series but defined only a list
# assuming you meant pandas.Series, and if its true then
series = [-74.002568, -74.003085, -74.003546]
s=pd.Series(series)
# use regex extract to pick the number until first two decimal places
out=s.astype(str).str.extract(r"(.*\..{2})")[0]
out
0 -74.00
1 -74.00
2 -74.00
Name: 0, dtype: object
更改显示选项。这不应该改变你的基础数据。
pd.options.display.float_format = "{:,.2f}".format