从 pandas 数据框到元组(对于半正矢模块)

2024-03-10

我有一个熊猫数据框my_df包含以下列:

id  lat1 lon1 lat2 lon2
1   45   0    41   3
2   40   1    42   4
3   42   2    37   1

基本上,我想做以下事情:

import haversine

haversine.haversine((45, 0), (41, 3)) # just to show syntax of haversine()
> 507.20410687342115

# what I'd like to do
my_df["dist"] = haversine.haversine((my_df["lat1"], my_df["lon1"]),(my_df["lat2"], my_df["lon2"]))

类型错误:无法将系列转换为

Using this https://stackoverflow.com/a/44350260/4348534,我尝试了以下方法:

my_df['dist'] = haversine.haversine(
        list(zip(*[my_df[['lat1','lon1']][c].values.tolist() for c in my_df[['lat1','lon1']]]))
        , 
        list(zip(*[my_df[['lat2','lon2']][c].values.tolist() for c in my_df[['lat2','lon2']]]))
        )

文件“blabla\lib\site-packages\haversine__init__.py”,第 20 行,在 hasrsine 中 纬度1, 经度1 = 点1

ValueError:需要解压的值太多(预期为 2)

知道我做错了什么/如何实现我想要的吗?


Use apply with axis=1:

my_df["dist"] = my_df.apply(lambda row : haversine.haversine((row["lat1"], row["lon1"]),(row["lat2"], row["lon2"])), axis=1)

要在每一行上调用二正矢函数,该函数理解标量值,而不是类似数组的值,因此会出现错误。通过致电apply with axis=1,您按行迭代,这样我们就可以访问每个列值并以方法期望的形式传递这些值。

我也不知道有什么区别,但有一个向量version https://stackoverflow.com/questions/25767596/vectorised-haversine-formula-with-a-pandas-dataframe半正矢公式的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 pandas 数据框到元组(对于半正矢模块) 的相关文章

  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • Pandas dataframe.hist() 更改子图上的标题大小?

    我正在使用 pandas Python 操作 DataFrame 我的数据是 10000 行 X 20 列 我正在将其可视化 如下所示 df hist figsize 150 150 但是 如果我将 Figsize 增大 每个子图的标题 即
  • PyCharm 表示 readline 导入未被使用

    我有这个代码 while True cmd input gt if cmd exit break 但我想实现高级文本输入功能 例如命令历史记录 因此我导入了 readline 模块 导入 readline 模块 甚至不使用它 将解锁这些功能
  • Python排序算法[重复]

    这个问题在这里已经有答案了 我在Python中实现了不同的排序算法 以更好地理解它们 我想知道Python的内置排序方法实现什么类型的排序 这是一个叫做Timsort http en wikipedia org wiki Timsort由
  • 数据框中 .map(str) 和 .astype(str) 有什么区别

    我有一个数据框 其列名为 col1 和 col2 的整数类型条目 我想将 col1 和 col2 的条目以及其间的 点 连接起来 我搜索并发现添加两个列条目 df col df col1 map str df col2 map str 并添
  • 如何按 pandas 中的值对系列进行分组?

    我现在有一只熊猫Series与数据类型Timestamp 我想按日期对其进行分组 并且每组中有许多行具有不同的时间 看似显而易见的方法类似于 grouped s groupby lambda x x date 然而 熊猫的groupby按索
  • 无法让gunicorn使用Python 3

    我有 Ubuntu NGINX Gunicorn 以及可与 Python 3 设置配合使用的虚拟环境 但我的 Flask 应用程序仍然以 2 7 6 运行 我已系统地按照说明进行操作 但找不到解决方案 Gunicorn 配置文件 progr
  • 使用 pandas 单元格中列表的长度选择行[重复]

    这个问题在这里已经有答案了 我有一张表 df a b c 1 x y x 2 x z c d 3 x t e f g 只是想知道如何使用 c 列的长度选择行 such as df loc len df c gt 1 我知道这是不对的 正确的
  • 如何同时接受int和float类型的输入?

    我正在制作一个货币转换器 如何让 python 同时接受整数和浮点数 我就是这样做的 def aud brl amount From to ER 0 42108 if amount int if From strip aud and to
  • Pandas 多索引数据框中组之间的计算

    假设我生成一个多索引数据框如下 arrays np array bar bar baz baz foo foo qux qux np array one two one two one two one two df pd DataFrame
  • 重命名 python 子包,将旧名称标记为已弃用

    我有一个 python 包 它具有以下目录结构 package init py subpackage A init py moduleA py moduleB py 现在我想更改名称subpackage A to subpackage B同
  • C++0x:使用函数迭代元组

    我有一个名为 push它可以处理不同的参数 包括元组 并且应该返回推送元素的数量 例如 push 5 应该将 5 压入堆栈 lua栈 http www lua org manual 5 1 manual html lua pushinteg
  • 没有名为“PIL”的模块

    当我尝试时遇到错误 from PIL import Image ImageFilter 在 Python 文件中我收到一条错误消息ModuleNotFoundError No module named PIL 到目前为止 我已经尝试卸载 重
  • Python中Decimal类型的澄清

    每个人都知道 或者至少 每个程序员都应该知道 http docs oracle com cd E19957 01 806 3568 ncg goldberg html 即使用float类型可能会导致精度错误 然而 在某些情况下 精确的解决方
  • 我怎样才能更多地了解Python的内部原理? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我使用Python编程已经有半年多了 我对Python内部更感兴趣 而不是使用Python开发应用程序
  • 如何使用 Plotly 中的直方图将所有离群值分入一个分箱?

    所以问题是 我可以在 Plotly 中绘制直方图 其中所有大于某个阈值的值都将被分组到一个箱中吗 所需的输出 但使用标准情节Histogram类我只能得到这个输出 import pandas as pd from plotly import
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • 如何从Python中的字符串中提取变量名称和值

    我有一根绳子 data var1 id 12345 name John White python中有没有办法将var1提取为python变量 更具体地说 我对字典变量感兴趣 这样我就可以获得变量的值 id和name python 这是由提供
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel

随机推荐