gpt4 book ai didi

python - 如何将 vincenty 距离转换为在 pandas 数据框中 float

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:35 25 4
gpt4 key购买 nike

我在分析 vincenty 距离时遇到问题,因为格式是 object 并且其中有 km 指标,我想进一步分析。我想将 vincenty 距离转换为 float 格式

这是数据

customer_id lat_free    long_free   lat_device  long_device radius      timestamp
7509 -6.283468 106.857636 -7.802388 110.368660 1264.000000 2017-12-14 21:18:40.327
7509 -6.283468 106.857636 -7.804296 110.367192 14.000000 2017-12-15 20:02:21.923

这是我的代码

from geopy.distance import vincenty
df['Vincenty_distance'] = df.apply(lambda x: vincenty((x['lat_free'], x['long_free']), (x['lat_device'], x['long_device'])), axis = 1)

这是结果

customer_id lat_free    long_free   lat_device  long_device radius      timestamp                 Vincenty_distance
7509 -6.283468 106.857636 -7.802388 110.368660 1264.000000 2017-12-14 21:18:40.327 422.7123873310482 km
7509 -6.283468 106.857636 -7.804296 110.367192 14.000000 2017-12-15 20:02:21.923 422.64674499172787 km

我需要将 Vincenty_distance 转换为 float

最佳答案

最好是添加.km:

df['Vincenty_distance'] = df.apply(lambda x: vincenty((x['lat_free'], x['long_free']), (x['lat_device'], x['long_device'])).km, axis = 1)

或在处理后使用 - 转换为 string,删除最后一个字母并转换为 float:

df['Vincenty_distance'] = df['Vincenty_distance'].astype(str).str[:-3].astype(float)

print (df)
customer_id lat_free long_free lat_device long_device radius \
0 7509 -6.283468 106.857636 -7.802388 110.368660 1264.0
1 7509 -6.283468 106.857636 -7.804296 110.367192 14.0

timestamp Vincenty_distance
0 2017-12-14 21:18:40.327 422.712361
1 2017-12-15 20:02:21.923 422.646709

print (df.dtypes)

customer_id int64
lat_free float64
long_free float64
lat_device float64
long_device float64
radius float64
timestamp object
Vincenty_distance float64
dtype: object

关于python - 如何将 vincenty 距离转换为在 pandas 数据框中 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49274833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com