Julia - DataFrame高级合并

时间:2016-09-28 11:00:31

标签: dataframe julia

我汇集来自多个来源的数据......特别是反应和反应公式

某些来源同时具有反应名称和公式,而其他来源可能只有公式,例如,请参见示例中的第2行和第3行

如果我有以下数据框:

│ Row │ reaction │ formula │
├─────┼──────────┼─────────┤
│ 1   │   "a"    │    1    │
│ 2   │   "b"    │    2    │
│ 3   │   ""     │    2    │
│ 4   │   "c"    │    3    │

如表所示,第2行和第3行具有相同的反应式,但只有第2行具有反应名称。 我想做的是删除那些具有公式的行,没有名称,但已经存在具有相同公式但具有反应名称的其他地方

即删除那些与第2列(公式)重复的行,如果,将具有的重复行留下反应名称,即反应名称不为空,以便

│ Row │ reaction │ formula │
├─────┼──────────┼─────────┤
│ 1   │   "a"    │    1    │
│ 2   │   "b"    │    2    │
│ 3   │   "c"    │    3    │

1 个答案:

答案 0 :(得分:1)

我们说你有:

df = DataFrame(reaction = ["a", "b", "", "c"], formula = [1, 2, 2, 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。