You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按数位拆分GPS坐标整数字段 批量转换度分格式处理CSV文件

解决方案

你可以用pandas做批量处理,核心逻辑是通过字符串切片拆分度和分,单文件处理仅需几行代码,1万+文件可以加个遍历逻辑批量跑完。

核心处理逻辑

度分格式的原始值「分」的整数部分固定为2位(00~59),所以只需要把数值转成字符串后,从整数部分倒数第2位切开即可,无需硬编码切分位置,适配2位纬度、3位经度的通用场景:

  • 原始值转字符串后拆分整数、小数部分
  • 整数部分从倒数第2位切开,前半部分为度
  • 整数部分后2位拼接原有小数部分为分
  • 最后拼接方位标识即可

代码示例

import pandas as pd
import os

# 单字段转换函数:输入原始值、方位标识,返回目标格式字符串
def ddm_convert(raw_val, direction):
    val_str = str(raw_val)
    # 拆分整数和小数部分
    if '.' in val_str:
        int_part, float_part = val_str.split('.', 1)
    else:
        int_part = val_str
        float_part = '0'
    # 切分度和分:分的整数部分固定2位
    degree_part = int_part[:-2]
    minute_part = int_part[-2:] + '.' + float_part
    return f"{degree_part} {minute_part} {direction}"

# 批量处理CSV文件夹
csv_folder = "你的CSV文件夹路径"
output_folder = "处理后输出路径"
os.makedirs(output_folder, exist_ok=True)

for filename in os.listdir(csv_folder):
    if not filename.lower().endswith('.csv'):
        continue
    file_path = os.path.join(csv_folder, filename)
    df = pd.read_csv(file_path, header=None)  # CSV无表头的话保留header=None参数
    
    # 处理第0列(纬度,默认方位N,可根据实际数据调整)
    df['纬度_转换后'] = df.iloc[:, 0].apply(lambda x: ddm_convert(x, 'N'))
    # 处理第2列(经度,默认方位E,可根据实际数据调整)
    df['经度_转换后'] = df.iloc[:, 2].apply(lambda x: ddm_convert(x, 'E'))
    
    # 保存处理后的文件
    output_path = os.path.join(output_folder, filename)
    df.to_csv(output_path, index=False, encoding='utf-8-sig')

可选调整项

  • 如果需要单独拆成度、分、方位三列,只要修改ddm_convert函数返回对应三个值,调用apply时加result_type='expand'就能直接生成三列插入原表
  • 如果存在南纬、西经的场景,可以自行加逻辑判断方向标识,或者从其他字段读取方位值传入函数

内容的提问来源于stack exchange,提问作者EWbiology

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:36:07