【发布时间】:2017-02-09 19:35:13
【问题描述】:
为了学习一些东西,我正在研究 Kaggle 上的全球鲨鱼攻击数据库,并试图找到使用 lambda 函数和 str.contains 来合并字符串的最佳方法。
基本上任何字符串都包含带有skin diving 的短语,例如'skin diving for abalone' ,在data['Activity'] 列中,我想用skin diving 替换活动。 (皮肤潜水有 92 种变体,因此尝试使用 lambda 函数)
我可以使用返回布尔系列
data['Activity].str.contains('skin diving')
但如果这个条件为真,我不确定如何更改值
我的 lambda 函数 = data.apply(lambda x: 'free diving' if x.str.contains('free diving)) 但我遇到了语法错误,而且我对 lambda 函数和 pandas 还不够熟悉,无法正确处理,我们将不胜感激。
【问题讨论】:
-
if表达式必须有一个else部分:x if condition else y。您的 lambda 没有else部分。
标签: python pandas lambda kaggle