我有一个 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/