Python: Join/Merge 2 dfs 近似键匹配
Python: Join/Merge 2 dfs on Approximate Key Match
我有两个数据框:
data = [['B100',30], ['C200',33], ['C201',11]]
data2 = [['B99/B100/B105','Yes'], ['C150/C200/C201','Yes'], ['D56/D500/D501','Yes']]
df_1 = pd.DataFrame(data, columns = ['code', 'value'])
df_2 = pd.DataFrame(data2, columns = ['code_agg', 'rating'])
我需要使用每个数据帧中 'code' 列的部分匹配将评分从 df_2 拉入 df_1(df_1 只有部分 key/code).结果应如下所示:
我尝试了几种方法,最常见的错误是“TypeError:'Series' objects are mutable, thus they cannot be hashed”
我将不胜感激任何帮助。谢谢!
df_1.merge(df_2.assign(code=df_2.code_agg.str.split('/')).explode('code'))
Out[]:
code value code_agg rating
0 B100 30 B99/B100/B105 Yes
1 C200 33 C150/C200/C201 Yes
2 C201 11 C150/C200/C201 Yes
我有两个数据框:
data = [['B100',30], ['C200',33], ['C201',11]]
data2 = [['B99/B100/B105','Yes'], ['C150/C200/C201','Yes'], ['D56/D500/D501','Yes']]
df_1 = pd.DataFrame(data, columns = ['code', 'value'])
df_2 = pd.DataFrame(data2, columns = ['code_agg', 'rating'])
我需要使用每个数据帧中 'code' 列的部分匹配将评分从 df_2 拉入 df_1(df_1 只有部分 key/code).结果应如下所示:
我尝试了几种方法,最常见的错误是“TypeError:'Series' objects are mutable, thus they cannot be hashed”
我将不胜感激任何帮助。谢谢!
df_1.merge(df_2.assign(code=df_2.code_agg.str.split('/')).explode('code'))
Out[]:
code value code_agg rating
0 B100 30 B99/B100/B105 Yes
1 C200 33 C150/C200/C201 Yes
2 C201 11 C150/C200/C201 Yes