用Python解析地理“经纬度”数据的4种转换方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用Python解析地理“经纬度”数据的4种转换方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1654字,纯文字阅读大概需要3分钟。
内容图文
![用Python解析地理“经纬度”数据的4种转换方法](/upload/InfoBanner/zyjiaocheng/610/dcd07a00a22d4c1d81bad367330c6670.jpg)
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
PS:如有需要Python学习资料的小伙伴可以加下Python快乐交流群:1136201545
关于“度、分、秒”的印象,我还是停留在初、高中的印象,因为那个时候学习过他们之间的数学转换。今天突然被问及,因此我将其整理出来,供大家学习。
![用Python解析地理“经纬度”数据的4种转换方法 - 文章图片](/upload/getfiles/0001/2021/4/30/20210430021933258.jpg)
在数学中,表示角度的度、分、秒分别使用°、′、″等符号进行表示。度与分,分与秒之间一律采用六十进制,它们的换算关系如下:
1°=60′ 1°=3600″ 1′=60″
接下来,我们利用群友提供的数据,来完成“度、分、秒”数据转“度”的操作,数据截图如下:
![用Python解析地理“经纬度”数据的4种转换方法 - 文章图片](/upload/getfiles/0001/2021/4/30/20210430021933836.jpg)
最后提供四种解决办法:
① 方法一:series的apply()函数
import re
import pandas as pd
df = pd.read_csv("t.txt", index_col=0)
df.columns = ["经纬度数据"]
def func(s):
arr = re.findall("\d+", s)
return int(arr[0])+int(arr[1])/60+int(arr[2])/3600
df["final"] = df["经纬度数据"].apply(func)
df
② 方法二:series中str属性的split()方法
import re
import pandas as pd
df = pd.read_csv("t.txt", index_col=0)
df.columns = ["经纬度数据"]
tmp = df["经纬度数据"].str.split("°|′|″", expand=True).values[:, :3].astype(int)
df["final"] = tmp[:, 0] + tmp[:, 1]/60 + tmp[:, 2]/3600
df
③ 方法三:series中str属性的extract()方法
import re
import pandas as pd
df = pd.read_csv("t.txt", index_col=0)
df.columns = ["经纬度数据"]
tmp = df["经纬度数据"].str.extract("(\d+)°(\d+)′(\d+)″").values.astype(int)
df["final"] = tmp[:, 0] + tmp[:, 1]/60 + tmp[:, 2]/3600
df
④ 方法四:series中str属性的extractall()方法
import re
import pandas as pd
df = pd.read_csv("t.txt", index_col=0)
df.columns = ["经纬度数据"]
tmp = df["经纬度数据"].str.extractall("(\d+)").unstack().values.astype(int)
df["final"] = tmp[:, 0] + tmp[:, 1]/60 + tmp[:, 2]/3600
df
内容总结
以上是互联网集市为您收集整理的用Python解析地理“经纬度”数据的4种转换方法全部内容,希望文章能够帮你解决用Python解析地理“经纬度”数据的4种转换方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。