2016-09-28 42 views
1

林组装来自多个源的数据...具体地说,反应和反应式朱莉娅 - 数据帧先进合并

一些来源有两个反应名称和式,而其它源具有可仅具有该式中,作为一个例如,参照2和3行中的示例

如果我有一个数据帧瓦特以下:

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

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

即删除行是那些行重复WRT列2(公式)如果离开重复一行具有反应的名字,那就是,不是空的反应名,从而获得

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

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

回答

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,根据您的需要。