如何将Pandas中无分隔符的POINT格式经纬度单列拆分为经纬度两个独立列
Pandas提取POINT格式Location列经纬度方案
核心处理逻辑
- 先清理Location列的换行、多余空白,将分散多行的POINT内容合并为标准单行格式
- 通过正则匹配提取括号内的两个数值,分别存入经度、纬度列
实现代码
import pandas as pd # 1. 预处理Location列:清除所有换行、连续空白为单个空格,去除首尾空格 df['Location'] = df['Location'].str.replace(r'\s+', ' ', regex=True).str.strip() # 2. 正则提取经纬度:POINT后括号内第一个值为经度,第二个为纬度 df[['Longitude', 'Latitude']] = df['Location'].str.extract(r'POINT \((-?\d+\.\d+) (-?\d+\.\d+)\)') # 3. 将提取的字符串转为浮点数值类型 df['Longitude'] = df['Longitude'].astype(float) df['Latitude'] = df['Latitude'].astype(float)
注意事项
- 若存在格式异常的POINT数据,可通过
df[df[['Longitude','Latitude']].isna().any(axis=1)]筛选出异常行,针对性调整正则规则即可 - 标准WKT POINT格式默认顺序为「(经度 纬度)」,如果你的数据存在顺序颠倒情况,调换两个新列的赋值顺序即可
内容的提问来源于stack exchange,提问作者user16619098
相关产品推荐
相关产品推荐

