首页 > 解决方案 > 比较两个不同数据框的“名称”列

问题描述

actual_df['new_col'] = np.where(lookup_df['name'].str.contains(actual_df['name'] + '-'), lookup_df['name'], 'Not Found')

上面的代码抛出以下错误:

“系列”对象是可变的,因此它们不能被散列

如何使用另一个数据框进行所需的查找?

标签: pythonpandasnumpydataframelookup

解决方案


如果两列的长度相同,则不要使用“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])]

推荐阅读