python - 使用 lambda 条件语句和 pandas str.contains 来合并字符串

标签 python pandas lambda kaggle

为了学习一些东西,我正在研究 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/

相关文章:

python - Django rest 框架 - 如何限制对 API 端点的请求?

python - 相对导入和 Python 3 的问题

Python 未检测到现有模块

c++ - 返回对 std::function-wrapped lambda 中静态变量的引用会导致段错误

c# - 使用 Lambda 或经典表达式使用 LinQ 列出类别及其产品数量

python - Pandas:Groupby 数据框并创建缺少数据的字典

python - 为分类数据填充多个空值

python - 无法传入 lambda 以申请 pandas DataFrame

python - 用 Pandas 从一行中移动一列

c# - Lambda表达式从对象列表中获取成员列表?