Julia中DataFrame重复值替换为带增量唯一值的方法(对标R的make.unique)
Julia实现类似R的
make.unique功能处理DataFrame重复值 Julia的DataFrames包没有直接对应R中make.unique的内置函数,但可以通过分组+序号拼接的方式快速实现需求。
示例代码
首先构造测试DataFrame:
using DataFrames df = DataFrame(A=["a","a","b"])
处理方法(原地修改)
使用groupby分组后,通过transform!给每个分组添加自增序号并拼接:
transform!(groupby(df, :A), :A => (x -> string.(x, "_", 1:length(x))) => :A)
执行后,原DataFrame的A列会被替换为["a_1", "a_2", "b_1"],符合预期。
非原地修改(生成新DataFrame)
如果不想修改原数据,改用transform返回新对象:
new_df = transform(groupby(df, :A), :A => (x -> string.(x, "_", 1:length(x))) => :A)
代码说明
groupby(df, :A):按A列的取值分组,将相同值的行归为同一组- 匿名函数
x -> string.(x, "_", 1:length(x)):对每个分组内的元素,拼接原字符串、下划线和从1开始的连续序号 => :A:将转换后的结果覆盖原A列(若修改右侧名称,可将结果存入新列)
内容的提问来源于stack exchange,提问作者august
相关产品推荐
相关产品推荐

