如何将表格中经纬度拆分后写入由两列生成的Python字典
解决方案
你当前代码的核心问题是拆分得到的经纬度变量没有写入最终字典,且硬编码行号提取坐标的方式兼容性差,只要表格行顺序变动就会取错值。
优化后的实现代码如下:
import glob import pandas as pd for filelist in glob.glob(vol_rawdata_path): df = pd.read_excel(filelist,header=None,sheet_name="Summary") # 合并重命名操作,写法更简洁 df.rename(columns={0:'Name', 1:'definition'}, inplace = True) df = df.dropna() # 先生成基础字段的字典 volSumDiction = pd.Series(df.definition.values,index=df.Name).to_dict() # 直接通过键名从字典取坐标值拆分,不受行顺序影响 if 'Coordinate' in volSumDiction: # 拆分时去除前后空格,兼容坐标字符串带空格的情况 latitude, longitude = [x.strip() for x in volSumDiction['Coordinate'].split(',')] # 把拆分后的经纬度写入字典 volSumDiction['lat'] = latitude volSumDiction['long'] = longitude # 如果不需要保留原始的坐标整串,可取消注释下行删除 # del volSumDiction['Coordinate'] # 输出验证结果 print(volSumDiction)
注意事项
- 该实现依赖Name列中的坐标字段名为
Coordinate,如果你的表格里该字段是其他命名,替换成对应名称即可 - 如果你的表格里多个条目都包含经纬度需要拆分,可以遍历字典值批量处理,按需调整逻辑即可
内容的提问来源于stack exchange,提问作者joshuah9
相关产品推荐
相关产品推荐

