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 │