我有一个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年,价值发生了变化。我很好奇;发生了什么事?
我认为这是表示法的四舍五入;你在Pandas对象中的价值实际上略低于2019年。例如:
>>> v = np.nextafter(2019, 0)
>>> v
2018.9999999999998
如果将此值v
放入DataFrame中;代表权:
>>> df = pd.DataFrame([v])
>>> df
0
0 2019
然而,将df
强制转换为整数只会减少数字的小数部分,因此您可以得到2018:
>>> df.astype(int)
0
0 2018