微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在朱莉娅中使用人行横道翻译数据框

如何解决在朱莉娅中使用人行横道翻译数据框

我有一个非常大的数据框 (original_df) 和代码

14 15
21 22
18 16

第二个数据框(crosswalk)将“old_codes”映射到“new_codes”

14 104
15 105
16 106
18 108
21 201
22 202

当然,我想要的结果 df (resultant_df) 会有值:

104 105
201 202
108 106

我知道有两种方法可以做到这一点。首先,我可以遍历 original_df 中的每个代码,找到 crosswalk 中的代码,然后用 crosswalk 中的翻译代码重写 original_df 中对应的单元格。更快、更自然的选择是 leftjoin() 'old_codes' 上 original_df 的每一列。不幸的是,我似乎必须为每一列分别执行此操作,然后在创建其转换列后删除每一列——这感觉不必要地复杂。有没有更简单的方法可以使用人行横道一次转换所有 original_df ?

解决方法

您可以执行以下操作(我使用的是列号,因为您没有提供列名):

d = Dict(crosswalk[!,1] .=> crosswalk[!,2])
resultant_df = select(original_df,[i => ByRow(x -> d[x]) for i in 1:ncol(original_df)],renamecols=false)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。