You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

vaex使用DataFrame列作为参数调用apply方法失效问题求助

问题原因

你出现报错的核心原因是给vaex的apply方法传入了pandas的Series对象作为参数,vaex的apply仅支持接收自身的列表达式或列名作为入参,不识别pandas数据结构。

解决方案

方案1:修正自定义函数的调用写法

仅需将参数替换为vaex DataFrame自身的列,同时指定返回值类型即可:

import pandas as pd
import vaex

df = pd.DataFrame(
    {
        "Name": [
            "Braund, Mr. Owen Harris",
            "Allen, Mr. William Henry",
            "Bonnell, Miss. Elizabeth",
        ],
        "Rep": ["Braund", "Henry", "Miss."],
        "Sub": ["<surname>", "<name>", "<title>"],
    }
)
dfv = vaex.from_pandas(df)

def func(x, y, z):
    return x.replace(y, z)

# arguments传入vaex自身的列,指定返回类型为字符串
dfv['Test'] = dfv.apply(func, arguments=[dfv.Name, dfv.Rep, dfv.Sub], dtype='str')

方案2:使用vaex内置字符串方法(更推荐,性能更高)

vaex内置了向量化的字符串替换方法,无需自定义函数,处理大数据量时效率远高于逐行apply:

dfv['Test'] = dfv.str.replace(dfv.Name, dfv.Rep, dfv.Sub)

运行结果验证

两种方法最终得到的Test列结果如下:

序号NameRepSubTest
0Braund, Mr. Owen HarrisBraund, Mr. Owen Harris
1Allen, Mr. William HenryHenryAllen, Mr. William
2Bonnell, Miss. ElizabethMiss.</td> <td>Bonnell, <title> Elizabeth</td> </tr> </tbody> </table> <p>内容的提问来源于stack exchange,提问作者Superdooperhero</p>
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:36:00