【发布时间】:2018-07-11 06:14:56
【问题描述】:
我有两个数据框,如下所示。我在两者中都添加了key 列,以便获得笛卡尔关节。我想将 df3 数据框的 BEN_NAME2 列中的每个值与 df4 数据框的 names2 列进行比较。我最初的计划是执行笛卡尔联合并检查是否有任何匹配值。但是我的两个数据框都很大,当我尝试加入时出现内存错误。
我想从BEN_NAME2 列中一次执行一个单元格的操作。我想在df3 中创建一个新列,如果找到完全匹配,它将给我来自df3 的行索引。
例如,df3 将获得两个新列,列 match 的值 (0,1,0) 和列 matching_row_index 的值 (0,3,0) 因为来自第二行的 jones 值与 @987654334 匹配@数据框
sales = [{'key': 0, 'BEN_NAME2': '150 jones'},
{'key': 0, 'BEN_NAME2': 'jones'},
{'key': 0, 'BEN_NAME2': '50'}]
df3 = pd.DataFrame(sales)
sales = [{'key': 0, 'names2': 'xyc'},
{'key': 0, 'names2': 'fsdfa'},
{'key': 0, 'names2': 'jones'}]
df4 = pd.DataFrame(sales)
我的主要目标是以相对较快的速度获得输出。
【问题讨论】:
标签: python string pandas dataframe comparison