【问题标题】:Convert utm to lat long in csv using pandas使用熊猫将utm转换为csv中的lat long
【发布时间】:2018-09-28 03:38:37
【问题描述】:
import pandas
import utm
df = pd.read_csv("0006.csv")

这是导入的 csv 文件的输出

       Description     PositionDateTime          X           Y       Z  \
0           DT0006  2018-01-01 00:00:08  668471.51  7473216.92   43.60   
1           DT0006  2018-01-01 00:00:09  668471.51  7473216.90   43.62   
2           DT0006  2018-01-01 00:00:39  668471.63  7473216.49   44.00   
3           DT0006  2018-01-01 00:01:02  668471.66  7473216.41   44.07   
4           DT0006  2018-01-01 00:01:14  668471.66  7473216.39   44.09   
5           DT0006  2018-01-01 00:01:48  668471.67  7473216.37   44.11   
6           DT0006  2018-01-01 00:01:54  668471.67  7473216.37   44.11   
7           DT0006  2018-01-01 00:02:36  668471.67  7473216.37   44.11   
8           DT0006  2018-01-01 00:02:39  668471.67  7473216.37   44.11   
9           DT0006  2018-01-01 00:03:18  668451.81  7473220.04   52.36   

假设Zone是45K,我想用utm把X、Y转换成经纬度。 到目前为止,我知道如何像这样转换

utm.to_latlon(???, ???, ??, '?')

如何将纬度和经度的每个数字转换为单独的列?

我做的是这个

df['lat'], df['long'] = utm.to_latlon(df.X, df.Y, 45, 'K')

这是错误的,仍在寻找如何做到这一点。

非常感谢

【问题讨论】:

    标签: python pandas latitude-longitude utm


    【解决方案1】:

    只需 apply()merge()

    def rule(row):
        lat, lon = utm.to_latlon(row["X"], row["Y"], 45, 'K')
        return pd.Series({"lat": lat, "long": long})
    df.merge(df.apply(rule, axis=1), left_index= True, right_index= True)
    

    【讨论】:

    • 谢谢兄弟。欣赏它
    • 我刚刚输入了 df 但合并和应用的数据没有显示转换后的数据集。在导出 csv 之前如何应用这些?
    • 你必须重新分配它,即df = df.merge(df.apply(rule, axis=1), left_index= True, right_index= True)
    猜你喜欢
    • 2018-05-20
    • 2012-03-12
    • 2011-06-16
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2016-01-05
    • 2014-07-26
    • 2016-12-01
    相关资源
    最近更新 更多