计算熊猫数据框中列值之间的距离

时间:2018-11-19 01:52:14

标签: python pandas dataframe distance

我附上了我的数据集样本。我对Panda的经验很少,因此,我正在努力解决问题。

enter image description here

我想做的是根据州和县为每个索引填充'dist'列(笛卡尔:scrollView.isPagingEnabled = true)。

每个县可能有多个p1 = (lat1,long1) ; p2 = (lat2,long2)。在计算距离时,我们使用最接近p1的那个。当一个县没有p2值时,我们只使用序列中的下一个。

如何简洁地设置此问题?我可以想象在县/州上运行一个迭代器,但是没有超出这个范围。

[编辑]这是下面建议的数据帧头。 (忽略图片中的不匹配项)

p1

1 个答案:

答案 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/