我有一个如下所示的DataFrame:
Values Total
Values
cbase 2019
以下是对价值的更好看:
>>> df.values
[[ 2019.]]
>>> df.dtypes
Values
Total float64
dtype: object
现在我想确保该值是一个整数(无十进制),所以我这样做:
df.astype(int64)
Values Total
Values
cbase 2018
价值从2019年变为2018年。我很好奇;发生了什么事?
答案 0 :(得分:4)
我认为这是一个四舍五入的事情;您在Pandas对象中的值实际上略低于2019年。例如:
>>> v = np.nextafter(2019, 0)
>>> v
2018.9999999999998
如果您将此值v
放在DataFrame中;为了表示,它将轮到2019年:
>>> df = pd.DataFrame([v])
>>> df
0
0 2019
但是,将df
强制转换为整数只会丢弃数字的小数部分,因此您将获得2018:
>>> df.astype(int)
0
0 2018