我有2个要加入的数据框。
product_no code
12 aj
12 mn
13 aj
p_no cde
12 *j
12 mn
13 *j
Result
product_no code p_no cde
12 aj 12 *j
12 mn 12 mn
13 aj 12 *j
我想将所有以j
结尾的代码与*j
匹配?我知道我必须在product_no === p_no
处加入,但是如果代码的最后一个字母是j,然后如何在*j
处加入,我该如何加入?
编辑
我们当前正在以product_no
的身份加入,并且需要以适当的方式将第一个数据帧中的代码与第二个数据帧中的代码连接。
第二个数据帧的数据仅包含code
列的3个值:2 letters, *j, or **
连接的条件如下:
mn
存在于第二个数据框中,则我们加入。j
结尾,如果是,则在cde
等于*j
的地方加入j
结尾,或者如果我们在相应的数据框中找不到*j
,则我们以**
来加入答案 0 :(得分:0)
目前尚不清楚您到底想做什么。但是,如果要在[第最后一个字符] = * [最后一个字符]的条件下联接数据帧,则可以按如下方式使用substring
函数:
df1.join(df2, concat(lit("*"), substring(df1.col("code"),-1,1)) === df2.col("cde"))