Dataframe Julia-数据帧高级合并
我正在收集来自多个来源的数据。。。具体来说,反应和反应式 某些来源同时具有反应名称和公式,而其他来源可能仅具有公式,例如,请参见示例中的第2行和第3行 如果我有一个数据帧,请执行以下操作:Dataframe Julia-数据帧高级合并,dataframe,julia,Dataframe,Julia,我正在收集来自多个来源的数据。。。具体来说,反应和反应式 某些来源同时具有反应名称和公式,而其他来源可能仅具有公式,例如,请参见示例中的第2行和第3行 如果我有一个数据帧,请执行以下操作: │ Row │ reaction │ formula │ ├─────┼──────────┼─────────┤ │ 1 │ "a" │ 1 │ │ 2 │ "b" │ 2 │ │ 3 │ "" │ 2 │ │ 4 │
│ Row │ reaction │ formula │
├─────┼──────────┼─────────┤
│ 1 │ "a" │ 1 │
│ 2 │ "b" │ 2 │
│ 3 │ "" │ 2 │
│ 4 │ "c" │ 3 │
# This index allows you to determine whether or not a reaction is missing:
ind = df[:reaction].!="";
# Then, you filter your DataFrame to remove those entries:
df2=df[ind,:];
如表所示,第2行和第3行具有相同的反应式,但只有第2行具有反应名称。
我想做的是,删除那些有公式的行,那些没有名称的行,但是已经存在于其他地方,有相同的公式,但也有反应名称
i、 e删除行-删除重复的行w.r.t第2列(公式),如果保留具有反应名称的重复行,即反应名称不为空,以便获得
│ Row │ reaction │ formula │
├─────┼──────────┼─────────┤
│ 1 │ "a" │ 1 │
│ 2 │ "b" │ 2 │
│ 3 │ "c" │ 3 │
假设你有:
df = DataFrame(reaction = ["a", "b", "", "c"], formula = [1, 2, 2, 3]);
您可以执行以下操作:
│ Row │ reaction │ formula │
├─────┼──────────┼─────────┤
│ 1 │ "a" │ 1 │
│ 2 │ "b" │ 2 │
│ 3 │ "" │ 2 │
│ 4 │ "c" │ 3 │
# This index allows you to determine whether or not a reaction is missing:
ind = df[:reaction].!="";
# Then, you filter your DataFrame to remove those entries:
df2=df[ind,:];
编辑:您可以根据需要增加选择器的复杂性,更好地定义ind 这看起来像是一个分组练习,而不是一个合并问题。尝试按公式分组,取每个公式的最大反应名称。