python - Pandas DataFrame Apply 函数,多个参数

标签 python pandas dataframe apply

我有一个 Pandas 数据框,其中一列是一个字符串。我从外部模块导入了一个函数来执行一些正则表达式检查并将该字符串简化为一个简短的分类。

这有效:

df['PageCLass'] = df['PageClass'].apply(lambda x: PageClassify.page_classify(x))

但是,我真正想做的是将数据框中的另一列“Rev”合并到检查中,该列恰好是 float 或 NaN。

当我这样做时:

df['PageCLass'] = df['PageClass'].apply(lambda x: PageClassify.page_classify(x,df['Rev']))

我在分类函数内对第二个参数进行逻辑检查,我得到了这个错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我正在寻找一种按值捕获第二个参数值的方法,就像 lambda x: 按值捕获第一个参数值一样。

最佳答案

上面的方法是可以的,我想它是否有效......在我看来,它没有回答这个问题,因为你将两个参数连接成一个。

允许您传递两个参数来执行此操作的方法:

df['PageCLass'] = df[['PageClass','Rev']].apply(lambda x: PageClassify.page_classify(*x), axis=1)

我不知道 page_classify 方法是什么样的,但如果它需要两个参数,上面的方法应该可以工作。这对你有用吗?

关于python - Pandas DataFrame Apply 函数,多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43077525/

相关文章:

r - 获取数字范围内的数字列表

python - 生成进口图

python - 近似匹配的位置

python - 将旋转矩阵应用于 xy 坐标

python - 使用 Pandas 创建矩阵结构

r - 使用列值在数据框中创建新行

pandas - 将索引值复制到 pandas 中单元格值非零的列

javascript - 如何向服务器端提交一个javascript变量

Python:如何向 itertools 函数添加参数?

python - Pandas 应用一个函数将列表返回到更多列