如何解决在朱莉娅中使用人行横道翻译数据框
我有一个非常大的数据框 (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 举报,一经查实,本站将立刻删除。