gpt4 book ai didi

python - 在 pandas 数据框中使用 apply 会给出 ValueError

转载 作者:太空宇宙 更新时间:2023-11-03 18:06:34 25 4
gpt4 key购买 nike

我有一个向量,我想将 PIL 逊相关性应用于 pandas 数据帧的所有行。我正在尝试以下操作:

df.apply(apply_func, axis=1, args=(np.array([1,2,3])), raw=True)

Apply func 只需采用两个 numpy 数组并计算相关性

def apply_func(v1, v2):
#do stuff

但是当我尝试运行此程序时出现以下错误

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我在 apply_func 中设置了断点,但我从未进入其中。我确信我错误地使用了这个结构,但我不确定它是什么。我认为 df 的每一行都会作为第一个位置参数传递给 apply_func,而 args 中的内容将占据其余部分。这不正确吗?

编辑我在下面创建了一个简单的示例,在这个示例中,apply_func函数应该只添加两个向量。仍然会产生相同的错误

data = {'k1': [1, 2, 3], 'k2': [4, 5, 6], 'k3': [7, 8, 9]}
df = pd.DataFrame(data)
def apply_func(v1, v2):
return v1 + v2
df.apply(apply_func, axis=1, args=(np.array([1,2,3])), raw=True)

最佳答案

因此能够通过找到以下帖子来解决我自己的问题

python pandas: apply a function with arguments to a series. Update

我的特殊情况产生了不同的错误(不知道为什么),但他们的解决方案有效。通过改变

args=(np.array([1,2,3]))

args=(np.array([1,2,3]),)  #<-- NOTE THE COMMA

我确保 args 是一个元组,这是 apply 函数所期望的,并且我得到了我期望的结果

关于python - 在 pandas 数据框中使用 apply 会给出 ValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26762206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com