python - 如何更改所有包含关键字的字符串向量?
问题描述
我想用“ZOE”替换所有包含字符串“ZOE”或其他关键字的模型名称,因为它是“雷诺”或其他品牌。因此,例如,我想要 ZOE DYNMAIQUE INTENS AUTO -> AUTO,如果模型不包含带有字符“ZOE”的字符串,我希望它保留其模型名称。
我是 python 新手,我试过下面的代码没有运气。
df2['Model'] = df2['Model'].apply(lambda x: 'ZOE' if df1['Make']df2['Make'] == 'RENAULT' & df2['Model'].str.contains('ZOE') else df2['Model'])
我收到的错误是“其他”应该是 pandas.NA 或布尔值。得到了 str 。对于我哪里出错的任何帮助或点,我将不胜感激。谢谢 !
解决方案
首先,由于你需要列'Model'和'Make' lambda
,你需要将lambda应用于所有df2
(或至少应用于df2[['Model', 'Make']]
。此外,你想循环数据帧的行,所以你必须将参数传递axis = 1
给apply
(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html)。然后,按照评论中的建议,访问行,你应该使用x
而不是df2
。所以(经过几次修改),我会尝试这样的事情:
df2['Model'] = df2.apply(lambda x: 'ZOE' if (x['Make'] == 'RENAULT') & ('ZOE' in x['Model']) else x['Model'], axis=1)
推荐阅读
- python - 如何叠加箱线图和线图?
- python - 熊猫计算数据框中的单词,另一列中的乘数值
- reactjs - 具有 enableImplicitConversion 的类转换器/类验证器在 ReactJS 中无法按预期工作
- python - 在 Pandas 中分解和解包列
- asp.net - UserManager CheckPassword() 在 .net core 3.1 中重新设置密码,并且无法从 asp.net MVC 项目登录
- python - 范围内所有子函数中的重载函数
- dynamics-crm - 为什么 fetchXML Web API url 需要实体名称?
- stored-procedures - 雪花存储过程:处理多行字符串和单引号
- function - 用于检查电源自动化 html 表项中的空白值的函数/表达式
- react-native - Useeffect正在泄漏内存如何在firebase函数中避免它