我附上了我的数据集样本。我对Panda的经验很少,因此,我正在努力解决问题。
我想做的是根据州和县为每个索引填充'dist'列(笛卡尔:scrollView.isPagingEnabled = true
)。
每个县可能有多个p1 = (lat1,long1) ; p2 = (lat2,long2)
。在计算距离时,我们使用最接近p1
的那个。当一个县没有p2
值时,我们只使用序列中的下一个。
如何简洁地设置此问题?我可以想象在县/州上运行一个迭代器,但是没有超出这个范围。
[编辑]这是下面建议的数据帧头。 (忽略图片中的不匹配项)
p1
答案 0 :(得分:1)
这就是我将使用Shapely
(位于Geopandas
底层的引擎)进行的操作,并且我将使用随机数据。
from shapely.geometry import LineString
import pandas as pd
import random
def gen_random():
return [random.randint(1, 100) for x in range(20)]
j = {"x1": gen_random(), "y1": gen_random(),
"x2": gen_random(), "y2": gen_random(),}
df = pd.DataFrame(j)
def get_distance(k):
lstr = LineString([(k.x1, k.y1,), (k.x2, k.y2) ])
return lstr.length
df["Dist"] = df.apply(get_distance, axis=1)
形状:http://toblerity.org/shapely/manual.html#introduction 地理熊猫:http://geopandas.org/