Dataframe 使用其他列值作为参考替换行中的特定值

Dataframe 使用其他列值作为参考替换行中的特定值,dataframe,julia,Dataframe,Julia,我需要使用id作为参考来替换bw列中的某些值。我需要用每个id的第一行中的值替换所有0值 数据 df = DataFrame(id=["Mouse","Mouse","Mouse","Mouse","Rat","Rat","Rat","Rat"], time=[1,2,3,4,1,2,3,4],

我需要使用
id
作为参考来替换
bw
列中的某些值。我需要用每个id的第一行中的值替换所有
0

数据

df = DataFrame(id=["Mouse","Mouse","Mouse","Mouse","Rat","Rat","Rat","Rat"],
               time=[1,2,3,4,1,2,3,4],
               bw=[25,0,0,0,100,0,0,0]) 

julia> df
8×3 DataFrame
│ Row │ id     │ time  │ bw    │
│     │ String │ Int64 │ Int64 │
├─────┼────────┼───────┼───────┤
│ 1   │ Mouse  │ 1     │ 25    │
│ 2   │ Mouse  │ 2     │ 0     │
│ 3   │ Mouse  │ 3     │ 0     │
│ 4   │ Mouse  │ 4     │ 0     │
│ 5   │ Rat    │ 1     │ 100   │
│ 6   │ Rat    │ 2     │ 0     │
│ 7   │ Rat    │ 3     │ 0     │
│ 8   │ Rat    │ 4     │ 0     │
所需输出:

df_out = DataFrame(id=["Mouse","Mouse","Mouse","Mouse","Rat","Rat","Rat","Rat"],
                   time=[1,2,3,4,1,2,3,4],
                   bw=[25,25,25,25,100,100,100,100]) 
 

julia> df_out
8×3 DataFrame
│ Row │ id     │ time  │ bw    │
│     │ String │ Int64 │ Int64 │
├─────┼────────┼───────┼───────┤
│ 1   │ Mouse  │ 1     │ 25    │
│ 2   │ Mouse  │ 2     │ 25    │
│ 3   │ Mouse  │ 3     │ 25    │
│ 4   │ Mouse  │ 4     │ 25    │
│ 5   │ Rat    │ 1     │ 100   │
│ 6   │ Rat    │ 2     │ 100   │
│ 7   │ Rat    │ 3     │ 100   │
│ 8   │ Rat    │ 4     │ 100   │

GroupedDataFrame

julia> transform(groupby(df, :id), :bw => first => :bw)
8×3 DataFrame
│ Row │ id     │ time  │ bw    │
│     │ String │ Int64 │ Int64 │
├─────┼────────┼───────┼───────┤
│ 1   │ Mouse  │ 1     │ 25    │
│ 2   │ Mouse  │ 2     │ 25    │
│ 3   │ Mouse  │ 3     │ 25    │
│ 4   │ Mouse  │ 4     │ 25    │
│ 5   │ Rat    │ 1     │ 100   │
│ 6   │ Rat    │ 2     │ 100   │
│ 7   │ Rat    │ 3     │ 100   │
│ 8   │ Rat    │ 4     │ 100   │