Dataframe 连接字符串列上的两个数据帧,但忽略重音/变音符号

Dataframe 连接字符串列上的两个数据帧,但忽略重音/变音符号,dataframe,julia,Dataframe,Julia,我有两个数据帧,我想基于一个字符串列进行连接,但其中一个使用非常劣质的unicode支持对其名称进行编码,从而删除重音和其他变音符号: fips = DataFrame(muni=["Adjuntas", "Anasco", "Bayamon", "Mayaguez"], fips=[72001, 72011, 72021, 72097]) pops = DataFrame(muni=["Adjuntas&

我有两个数据帧,我想基于一个字符串列进行连接,但其中一个使用非常劣质的unicode支持对其名称进行编码,从而删除重音和其他变音符号:

fips = DataFrame(muni=["Adjuntas", "Anasco", "Bayamon", "Mayaguez"], fips=[72001, 72011, 72021, 72097])
pops = DataFrame(muni=["Adjuntas", "Añasco", "Bayamón", "Mayagüez"], pop=[17363, 26161, 169269, 71530])
我想让
leftjoin(pops,fips;on=:muni)
在连接时使用一个近似等式,处理缺少的重音和变音符号(但确保基本字符是相同的),或者,如果失败,在
pops
上进行某种ascii字符串转换,这是您想要的吗

julia> using Unicode

julia> leftjoin(transform(pops,
                          :muni =>
                          ByRow(x -> Unicode.normalize(x, stripmark=true)) =>
                          :muni,
                          copycols=false),
                fips, on=:muni)
4×3 DataFrame
 Row │ muni      pop     fips
     │ String    Int64   Int64?
─────┼──────────────────────────
   1 │ Adjuntas   17363   72001
   2 │ Anasco     26161   72011
   3 │ Bayamon   169269   72021
   4 │ Mayaguez   71530   72097

太好了,谢谢你!我发现并实现了normalize |>regex工作流的音译,但错过了更直接、更简洁的
stripmark
normalization选项。谢谢