我正在尝试创建pd.DataFrame
,但我无法正确获取数据类型。我有两个类型为numpy
的{{1}}数组。
它们是从坐标列表(x& y)创建的,如下所示:
float
此处参考的是# Take coordinates from list and convert to a numpy array
x_vector = np.asarray(x_list, dtype=float)
y_vector = np.asarray(y_list, dtype=float)
的样子:
x_vector
我对此处的格式感到满意,当我尝试将[-2248925.48185815 -2248925.48185815 -2248080.13621823 -2262432.04991849
-2250570.32692157 -2237312.76315587 -2237312.76315587 -2245650.16260083
-2245650.16260083 -2249323.93572129 -2247050.83128422 -2253151.83634956]
和x_vector
添加到pandas数据框时出现问题。
我的逻辑是我有201条纬度/经度记录,所以我的y_vector
等于那个,然后我添加index
对应于我的数据,最后我设置columns
以匹配我的coordinates(float)。
这是我的代码:
dtype
然而,当我将df = pd.DataFrame(index=range(1, 202, 1), columns=['lat', 'lon', 'ws_daily_max'], dtype=float)
df['lat'] = y_vector
df['lon'] = x_vector
打印到控制台时,我会得到小数位显着偏移的值。出了什么问题,为什么lat / lon值会发生变化?我期望它们与上面的浮点值相同,即(df
)?
-2248925.48185815
我对发生的事情感到很困惑。没有打印错误消息,但这是不我期望的结果。任何明确的原因以及如何解决这个问题都将非常感激。
帮我,StackExchange。你是我唯一的希望。
答案 0 :(得分:3)
这是相同数字的科学记数法。 1.895464e + 06表示1.895464 * 10 ^ 6 = 1895465.所以小数位没有移位,只是表示。如果您想更改数字的外观,请查看http://pandas.pydata.org/pandas-docs/stable/options.html。我希望这会有所帮助。