Dataframe Julia-数据帧高级合并

Dataframe Julia-数据帧高级合并,dataframe,julia,Dataframe,Julia,我正在收集来自多个来源的数据。。。具体来说,反应和反应式 某些来源同时具有反应名称和公式,而其他来源可能仅具有公式,例如,请参见示例中的第2行和第3行 如果我有一个数据帧,请执行以下操作: │ Row │ reaction │ formula │ ├─────┼──────────┼─────────┤ │ 1 │ "a" │ 1 │ │ 2 │ "b" │ 2 │ │ 3 │ "" │ 2 │ │ 4 │

我正在收集来自多个来源的数据。。。具体来说,反应和反应式

某些来源同时具有反应名称和公式,而其他来源可能仅具有公式,例如,请参见示例中的第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,:];
如表所示,第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

这看起来像是一个分组练习,而不是一个合并问题。尝试按公式分组,取每个公式的最大反应名称。