【发布时间】:2020-09-08 12:48:32
【问题描述】:
我必须从二维坐标计算希尔伯特曲线上的距离。使用 hilbertcurve-package 我构建了我自己的“hilbert”-function,来做到这一点。坐标存储在数据框(col_1 和 col_2)中。如您所见,我的函数在应用于两个值(测试)时有效。
但是,当通过应用功能逐行应用时,它就不起作用了!为什么是这样?我在这里做错了什么?我需要一个额外的列“hilbert”,其中包含与列“col_1”和“col_2”中给出的 x 和 y 坐标的希尔伯特距离。
import pandas as pd
from hilbertcurve.hilbertcurve import HilbertCurve
df = pd.DataFrame({'ID': ['1', '2', '3'],
'col_1': [0, 2, 3],
'col_2': [1, 4, 5]})
def hilbert(x, y):
n = 2
p = 7
hilcur = HilbertCurve(p, n)
dist = hilcur.distance_from_coordinates([x, y])
return dist
test = hilbert(df.col_1[2], df.col_2[2])
df["hilbert"] = df.apply(hilbert(df.col_1, df.col_2), axis=0)
最后一条命令以错误结束:
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
感谢您的帮助!
【问题讨论】:
标签: python pandas function apply