如何反转经纬度坐标对列表及DataFrame指定列中的坐标对?
解决方案
1. 反转坐标元组列表中的每个点
你原来的代码生成的是列表的列表,但期望输出是元组的列表,只需把推导式里的方括号改成圆括号即可:
# 示例输入列表 x = [(52.34725, 4.91790), (52.34715, 4.91797), (52.34742, 4.91723), (52.34752, 4.91713)] # 修改后的代码 result = [(p[1], p[0]) for p in x]
运行后得到的结果与期望一致:
[(4.91790, 52.34725), (4.91797, 52.34715), (4.91723, 52.34742), (4.91713, 52.34752)]
2. 处理DataFrame中"coord"列的坐标反转
假设你的DataFrame示例结构如下:
import pandas as pd df = pd.DataFrame({ 'coord': [ [(52.34725, 4.91790), (52.34715, 4.91797)], [(52.34742, 4.91723), (52.34752, 4.91713)] ] })
使用apply方法对每行的坐标列表批量处理:
df['coord'] = df['coord'].apply(lambda lst: [(p[1], p[0]) for p in lst])
处理后df['coord']的每行都会变成反转后的坐标元组列表。
内容的提问来源于stack exchange,提问作者Dragon
相关产品推荐
相关产品推荐

