astype转换经纬度字段丢失小数位的问题求助
astype转换经纬度字段丢失小数位的问题求助
我最近处理经纬度坐标数据时碰到了个棘手的问题:当我用astype(float)转换Latitud和Longitud这两个字段时,原本精确的小数位居然全部丢失,只剩整数部分了——这对经纬度数据来说完全失去了意义啊!
我执行的转换代码是:
df[["Latitud","Longitud"]] = df[["Latitud","Longitud"]].astype(float)
我需要保留的原始数据格式(精确到多位小数):
df[["Latitud", "Longitud"]] Latitud Longitud 0 -34.807023 -56.0336021 1 -34.8879924 -56.1846677 2 -34.8895332 -56.1560728 3 -34.8860972 -56.1635684 4 -34.7242753 -56.2012194 393 -34.8575722 -56.0534571 394 -34.7448815 -56.2132383 395 -34.8539222 -56.2320066 396 -34.8513169 -56.1721213 397 -34.8220428 -55.9906951
但用astype(float)转换后得到的结果(只剩整数,完全丢失精度):
df[["Latitud", "Longitud"]] Latitud Longitud 0 -35 -56 1 -35 -56 2 -35 -56 3 -35 -56 4 -35 -56 393 -35 -56 394 -35 -56 395 -35 -56 396 -35 -56 397 -35 -56
我已经试了两种方法,但都没解决问题:
- 尝试用
pd.to_numeric转换:df[["Latitud","Longitud"]] = pd.to_numeric(df[["Latitud","Longitud"]],errors='coerce') - 尝试设置浮点数显示格式:
pd.options.display.float_format = '{:.08f}'.format
有没有大佬能教教我,怎么才能保住这些至关重要的小数位啊?
备注:内容来源于stack exchange,提问作者Franco Vera




