为了学习一些东西,我正在研究 Kaggle 上的全局鲨鱼攻击数据库,我正试图找到使用 lambda
函数和 来合并字符串的最佳方法str.contains
.
基本上任何地方的字符串都包含带有 skin diving
的短语,例如'skin diving for abalone'
,在 data['Activity']
列中我想用 skin diving
替换 activity。 (浮潜有 92 种变化,因此尝试使用 lambda 函数)
我可以使用返回一个 bool 系列
data['Activity].str.contains('skin diving')
但我不确定如果此条件为真,如何更改值
我的 lambda 函数 = data.apply(lambda x: 'free diving' if x.str.contains('free diving))
但我遇到了语法错误而且我没有足够熟悉 lambda 函数和 pandas 以使其正确,我们将不胜感激。
最佳答案
您可以在 lambda 中使用 in 运算符来测试子字符串,而不是使用 Series.str 方法
data['activity'] = data['activity'].apply(lambda x: 'skin diving' if 'skin diving' in x else x)
关于python - 使用 lambda 条件语句和 pandas str.contains 来合并字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42145340/