python - 比较两个不同数据框的“名称”列
问题描述
actual_df['new_col'] = np.where(lookup_df['name'].str.contains(actual_df['name'] + '-'), lookup_df['name'], 'Not Found')
上面的代码抛出以下错误:
“系列”对象是可变的,因此它们不能被散列
如何使用另一个数据框进行所需的查找?
解决方案
如果两列的长度相同,则不要使用“str.contains()”方法,而是使用切片。
actual_df['new_col']= np.where(lookup_df['name'] == actual_df["name"].str[:-1], df2['name2'], 'Not Found')
如果没有,请使用 pandas 的“df.isin()”方法:
actual_df['new_col'] = actual_df["name"][actual_df["name"].isin(lookup_df["name"].str[:-1])]
推荐阅读
- swift - 无法使用来自 readLine() 的字符串创建 NSExpression
- c++ - C++ 与 Visual Basic 中的同时性?
- android - 自定义文件扩展名无法打开
- python - 如何使用 statsmodel 解决以下错误?
- azure-web-app-service - 您无权查看此目录或页面 Azure 和 FTP(Filezilla 错误)
- java - 如何使用 spotify docker 客户端连接到主机上的 docker 守护进程
- telegram - 如何让两个 ESP8266 收听同一个 Telegram 机器人
- bitbucket - 管道 apt-get 更新失败
- c++ - 在 c++11 中创建 unique_ptr 的动态数组的正确方法是什么?
- laravel - 从推送器注销时广播接收器不起作用