使用 Pandas 的欧几里得距离矩阵

2024-04-14

我有一个 .csv 文件,其中包含以下格式的城市、纬度和经度数据:

CITY|LATITUDE|LONGITUDE
A|40.745392|-73.978364
B|42.562786|-114.460503
C|37.227928|-77.401924
D|41.245708|-75.881241
E|41.308273|-72.927887

我需要创建以下格式的距离矩阵(请忽略虚拟值):

         A         B         C         D         E   
A  0.000000  6.000000  5.744563  6.082763  5.656854  
B  6.000000  0.000000  6.082763  5.385165  5.477226  
C  1.744563  6.082763  0.000000  6.000000  5.385165
D  6.082763  5.385165  6.000000  0.000000  5.385165  
E  5.656854  5.477226  5.385165  5.385165  0.000000  

我已将数据加载到 pandas 数据框中,并创建了一个交叉连接,如下所示:

import pandas as pd
df_A = pd.read_csv('lat_lon.csv', delimiter='|', encoding="utf-8-sig")
df_B = df_A
df_A['key'] = 1
df_B['key'] = 1 
df_C = pd.merge(df_A, df_B, on='key')  
  • 你能帮我创建上面的矩阵结构吗?
  • 另外,是否可以避免涉及交叉连接的步骤?

您可以使用pdist http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html#scipy.spatial.distance.pdist and 正方形 http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.squareform.html#scipy.spatial.distance.squareform方法来自scipy.空间.距离 http://docs.scipy.org/doc/scipy/reference/spatial.distance.html:

In [12]: df
Out[12]:
  CITY   LATITUDE   LONGITUDE
0    A  40.745392  -73.978364
1    B  42.562786 -114.460503
2    C  37.227928  -77.401924
3    D  41.245708  -75.881241
4    E  41.308273  -72.927887

In [13]: from scipy.spatial.distance import squareform, pdist

In [14]: pd.DataFrame(squareform(pdist(df.iloc[:, 1:])), columns=df.CITY.unique(), index=df.CITY.unique())
Out[14]:
           A          B          C          D          E
A   0.000000  40.522913   4.908494   1.967551   1.191779
B  40.522913   0.000000  37.440606  38.601738  41.551558
C   4.908494  37.440606   0.000000   4.295932   6.055264
D   1.967551  38.601738   4.295932   0.000000   2.954017
E   1.191779  41.551558   6.055264   2.954017   0.000000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Pandas 的欧几里得距离矩阵 的相关文章

  • 有没有纯Python的表类?

    我正在构建一个需要分析表格数据的应用程序 我想执行一些列操作 例如重命名列 删除列以及根据现有列的值计算新列的能力 我的第一选择是 Pandas 之类的东西 但是一个限制是这个项目必须是跨平台的并且非常容易在 virtualenv 中部署
  • LSTM - 一段时间后预测相同的常数值

    我有一个变量 我想预测未来 30 年的情况 不幸的是我没有很多样品 df pd DataFrame FISCAL YEAR 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 199
  • AttributeError:模块“tensorflow.python.summary.summary”没有属性“FileWriter”

    我收到此错误 尽管我到处都看过file writer tf summary FileWriter path to logs sess graph 被提到为正确的实施this https github com tensorflow tenso
  • python:如何检查一行是否为空行

    试图弄清楚如何编写一个 if 循环来检查一行是否为空 该文件有许多字符串 其中之一是一个空行 用于与其他语句分隔开 不是 我认为是一个回车符后面跟着另一个回车符 new statement asdasdasd asdasdasdasd ne
  • 使用 Numpy 与 einsum 和 tensordot 进行相同的操作

    假设我有两个 3D 数组A and B形状的 3 4 N and 4 3 N 我可以计算沿第三轴的切片之间的点积 with einsum np eisum ikl kjl gt ijl A B 是否可以执行相同的操作numpy tensor
  • 解码来自 S60 设备的 WBXML SyncML 消息

    我正在尝试解码来自诺基亚 N95 的 WBXML 编码的 SyncML 消息 我的第一次尝试是使用 python pywbxml 模块 它包装了对 libwbxml 的调用 用此方法解码消息会得到许多 标签以及 标签内的一大块二进制文件 我
  • Python:像石英一样的事件调度程序[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • pyspark.sql.functions.window 函数的“startTime”参数和 window.start 有何作用?

    示例如下 df spark createDataFrame 1 2017 05 15 23 12 26 2 5 1 2017 05 09 15 26 58 3 5 1 2017 05 18 15 26 58 3 6 2 2017 05 15
  • 使用 isdigit 表示浮点数?

    a raw input How much is 1 share in that company while not a isdigit print You need to write a number n a raw input How m
  • 创建 Pyomo 约束的性能

    我正在用 pyomo 设置一个更大的能量优化问题 正如其他中提到的 设置花费了不合理的时间问题 https stackoverflow com questions 43413067 performance of pyomo to gener
  • CTRL-C 在 Python 中的行为有所不同

    I ve recently started learning Python long time Java programmer here and currently in the process of writing some simple
  • 将日期(系列)列从一个 DataFrame 添加到其他 Pandas,Python

    我正在尝试将日期列从 df1 广播 到 df2 在 df1 中 我有所有用户的姓名及其基本信息 在 df2 中 我有一个用户购买的列表 df1 和 df2 代码 https i stack imgur com sN0uJ png 假设我有一
  • python中的unicode错误[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 在下面的代码中我收到错误mailSe
  • 使用Python构建caffe(找不到-lboost_python3)

    我正在尝试用 python 构建 caffe 但它一直这样说 CXX LD o python caffe caffe so python caffe caffe cpp usr bin ld cannot find lboost pytho
  • 适用于 Python 的 GitLab CI 共享 Windows 运行器

    我在 GitLab 中有一个 python 项目仓库 我看到 GitLab 共享了可用的测试版 Windows 运行程序 请参阅this https about gitlab com blog 2020 01 21 windows shar
  • Python UPnP/IGD 客户端实现?

    我正在寻找一个开源实现UPnP http elinux org UPnPPython 中的客户端 更具体地说是它的互联网网关设备 http en wikipedia org wiki Internet Gateway Device Prot
  • 加入语音频道(discord.py)

    当我尝试让我的机器人加入我的语音频道时 出现以下错误 await client join voice channel voice channel 产生错误的行 Traceback most recent call last File usr
  • pandas - 组合行的字符串

    我有一个像这样的数据框 id text 1 DM HTN Enlarged prostate 2 hypertensive and on regular treatment 2 LBP 3 DM HTN Enlarged prostate
  • Python 单元测试:Nose 失败时重试?

    我有一个随机失败的测试 我想让它在发送错误消息之前重试多次 我将 python 与 Nose 一起使用 我写了以下内容 但不幸的是 即使使用 try except 处理 当第一次尝试测试失败时 Nose 也会返回错误 def test so
  • Django 多个外键,相同的相关名称

    我想创建一个模型 1 其中具有相同其他模型 2 的多个外键 我希望这些外键具有相同的related name因为每个外键将指向 model 2 的不同实例 因为我需要所有外键的一个反向关系 也许一个例子会更明确 class Parent M

随机推荐

  • 编写每个三角形/面具有纯色的 GLSL 片段着色器的方法

    我有顶点和三角形数据 其中包含每个数据的颜色triangle 面 不是每个顶点 即单个顶点由多个面共享 每个面可能具有不同的颜色 我应该如何在 GLSL 中解决这个问题以获得每个的纯色分配face正在渲染 通过平均顶点相邻多边形的颜色来计算
  • 设置任意深度的嵌套列表样式

    我想知道是否可以仅使用 CSS 来设置嵌套无序列表的样式 而不使用任何脚本 问题是 CSS 需要适用于列表树的任何深度 例如 我有一个列表 ul li Item 1 li li Item 2 li li Item 3 li li class
  • 在 Mocha 中处理未随 npm 安装的依赖项?

    我有一个正在运行的 Node 应用程序 我正在尝试添加 Mocha 测试 但遇到了一些奇怪的导入错误 这是我的文件结构 package json index js src chart js test test chart js 这就是我的c
  • 如何使用灵活的数组成员初始化结构

    我有以下结构 typedef struct person int age char sex char name person 我已经做了一些基本的互联网搜索 但不成功 了解如何创建实例并使用灵活的数组成员初始化结构而不使用malloc 例如
  • snmpwalk 与 PySNMP

    我想重现以下 SNMP 命令的行为 snmpwalk v2c cpublic 192 168 0 10 1 3 6 1 2 1 25 2 3 1 3 这给了我这个输出 iso 3 6 1 2 1 25 2 3 1 3 1 STRING Ph
  • 列出应用程序的活动和意图过滤器?

    我有兴趣激活另一个应用程序的活动 通过阅读 Android SDK 我知道最好以隐式意图执行此操作 但是 此活动并不驻留在我拥有的应用程序中 因此我不知道意图过滤器上的操作 类别和数据标志 如何检查 Android 应用程序元数据 例如活动
  • 将异步结果分配给数据绑定属性

    下面是一个示例实现 它使用 Metro API 和数据绑定 使用 MVVM 来填充下拉列表中的文件夹列表 View 模型的构造函数使用 SetFolders 方法 私有异步 该方法调用可等待方法 fileService GetFolders
  • Gulp-autoprefixer 抛出 ReferenceError: Promise 未定义

    我尝试让 gulp 编译我的 sass 然后使用 autoprefixitgulp autoprefixer但我收到错误 var gulp require gulp sass require gulp sass autoprefixer r
  • 清理 .NET 中动态 SQL 中的表/列名称? (防止SQL注入攻击)

    我正在生成一些动态 SQL 并希望确保我的代码是安全的SQL注入 http en wikipedia org wiki SQL injection 为了便于论证 这里是一个关于如何生成它的最小示例 var sql string Format
  • 乘以数据表中的列

    我有一个 C 数据表 其中包含 价格 列和 分配 列 我需要将价格列乘以分配列 并将结果放入价格列中 有没有一种方法可以在不循环桌子的情况下进行 我尝试过这样的事情 DataTable dt getData dt Columns Price
  • 函数输出函数文本而不是预期输出

    我已经用几种不同的方式提出了类似的问题 但这是最简单的版本 我试图在函数发生时通过键名值列表进行递增 但是 当调用该函数时 我得到的只是函数本身的文本 这是一个片段 var knlist kn10 2L1qvq6Tg6rMhEwNshr6d
  • 两个相互依赖的字段的淘汰验证

    考虑下面的代码 var MyObjectModel function myObject var self this self myNumber1 ko observable myObject number1 trimmed self myN
  • 从Azure功能(powershell)访问IP受限的URI

    我想知道给定的 Powershell 函数 例如 url http AnIPrestrictedURL xml xml new object System Net WebClient DownloadString url url 是一个 I
  • 如何在 JavaScript 中使用单选按钮将用户发送到新网站?

    我希望程序做的是制作一个表单并有 2 个单选按钮和 1 个文本 然后我希望它将文本和单选值折叠在一起并将我带到该页面 如果我输入类似 facebook 的文本 并且单选按钮值为 com 我希望它采用 facebook com 并将我发送到该
  • 升级到 razor 2 / mvc 4 后,为什么我的 razor 视图抱怨“}预期”?

    我有一个现有的 razor 1 mvc 3 视图 有一些嵌套if 非常简单 但是升级到 razor 2 mvc 4 后 它在运行时和编译时抱怨 BuildViews about expected 它曾经工作得很好 我已经检查了所有元素是否格
  • Flask 运行与 Python

    我很难使用 python 方法运行我的烧瓶应用程序 我使用没有问题 export FLASK APP microblog py flask run 但尝试使用 python microblog py 会导致以下错误 ImportError
  • 在代码块中链接头文件

    所以我在 OpenCV 中编写了代码 其中包含使用 Code Blocks 的 2 个头文件 当我编译文件时 除了两个 未定义的引用 错误之外没有任何错误 这是因为我使用了在头文件中声明的函数 我假设代码块自动链接头文件 我已经使用 inc
  • PIC18F 中的随机种子

    我将在 PIC18F2550 微控制器上运行修改后的 DES 代码 C 语言 为此 我使用 mplabx IDE v 2 和 Mplab xc8 v 1 30 要修改代码 我需要一个随机数 以便每次运行都会产生不同的数字 我想使用 rand
  • Geany编译

    不知道该把这个放在哪里 但我在 2 个系统 笔记本电脑和台式机 上运行 Geany 在我的笔记本电脑上它运行得很好 但在我的台式机上运行代码时出现此错误 whatevername 不被识别为内部或外部命令 可操作程序或批处理文件 我不知道w
  • 使用 Pandas 的欧几里得距离矩阵

    我有一个 csv 文件 其中包含以下格式的城市 纬度和经度数据 CITY LATITUDE LONGITUDE A 40 745392 73 978364 B 42 562786 114 460503 C 37 227928 77 4019