【发布时间】:2021-04-18 08:55:06
【问题描述】:
我有一个 DF,我正在尝试将东/北转换为长/纬度。我的 df 看起来像这样:
import pandas as pd
import numpy as np
import pyproj
Postcode Eastings Northings
0 AB101AB 394235 806529
1 AB101AF 394181 806429
2 AB101AG 394230 806469
3 AB101AH 394371 806359
4 AB101AL 394296 806581
我正在使用众所周知的代码块将东向和北向转换为 long/lats,并将这些 long/lats 作为新列添加到 df:
def proj_transform(df):
bng = pyproj.Proj("+init=EPSG:27700")
wgs84 = pyproj.Proj("+init=EPSG:4326")
lats = pd.Series()
lons = pd.Series()
for idx, val in enumerate(df['Eastings']):
lon, lat = pyproj.transform(bng, wgs84, df['Eastings'][idx], df['Northings'][idx])
lats.set_value(idx, lat)
lons.set_value(idx, lon)
df['lat'] = lats
df['lon'] = lons
return df
df_transform = proj_transform(my_df)
但是,我不断收到以下错误,“输入必须是数组、列表、元组或标量”。有没有人知道我在哪里出错了?
【问题讨论】:
标签: pandas numpy geopandas pyproj