如何将数据帧的2列组合到另一列中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将数据帧的2列组合到另一列中相关的知识,希望对你有一定的参考价值。
我有一个数据框,其中包含索引中的位置名称和2列,纬度和经度。
LATITUDE LONGITUDE
SITE
LE0039 59.522583 29.566056
LE0073 59.287991 31.369472
LE0142 59.350241 32.531339
LE0278 59.964750 29.195850
.....
.....
我需要计算从一个站点到另一个站点的最小距离,并将其存储在每个站点的第三列中。我想用scipy.spatial.distance.pdist()来计算距离矩阵,但为了做到这一点,我首先需要一个带有(LATITUDE,LONGITUDE)的新列,以便将它传递给pdist()。
所以我有2个问题。一个是如何将lat和long组合成一个(lat,long)数组,另一个是如果你认为有更好的方法来计算最小距离
谢谢
答案
使用list
+ zip
的旧组合。 zip
创建配对对象,列表创建列表,以便将其分配给数据帧
df['combined'] = list(zip(df.LATITUDE, df.LONGITUDE))
输出:
LE0039 59.522583 29.566056 (59.522583, 29.566056)
LE0073 59.287991 31.369472 (59.287991000000005, 31.369472)
LE0142 59.350241 32.531339 (59.350241000000004, 32.531339)
LE0278 59.964750 29.195850 (59.96475, 29.19585)
旁注:我对十进制扩展非常感兴趣,不知道为什么会有000005
关于距离,numpy
和scipy
应该有很多选项,比我熟悉的方式更多,所以你应该在google上快速搜索后找到许多好的选择:)我通常坚持使用pdist()
以上是关于如何将数据帧的2列组合到另一列中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 OpenOffice 中将一列单元格从一张表插入到另一张表的单个单元格中?