我已经使用string_grouperPython 中的包生成了两个公司信息数据库之间的通用名称列表。生成的数据框显示来自 DB1 ( ) 和 DB2 ( )matches的公司名称高于某个字符串相似度阈值:left_sideright_side现在,我想减少 DB1 以仅包含公司名称存在于matches['left_side']. (因为 DB1 中的信息如果没有 DB2 中关于该公司的信息的补充就没有用。所以我只想要两者中的公司)我该怎么做呢?这些名称存在于 DB1 的“名称”列中,但例如rslt_df = DB1[DB1['names'] in matches['left_side']]给我一个错误 ( 'Series' objects are mutable, thus they cannot be hashed)。DB1 非常大(matches最终有大约 10,000-20,000 行,DB1 有 2000000+ 行)所以请在速度方面牢记这一点!
1 回答
jeck猫
TA贡献1909条经验 获得超7个赞
发生错误是因为DB1['names']
是系列,而in
运算符期望左侧有单个元素。
尝试使用pandas.Series.isin() 函数:
rslt_df = DB1[DB1['names'].isin(matches['left_side'])]
添加回答
举报
0/150
提交
取消