通过多列排列将2个Pandas数据帧合并为1

时间:2016-11-11 09:40:58

标签: python-2.7 pandas merge

我有两个表示项目清单的Pandas数据框。两个数据框都有四列:

df1
id, item, colour, year
1, car, red, 2015
2, truck,, 2016
3, house, blue,
4, car, blue,
5, truck, red, 2015

df2
id, item, colour, year
1, house, blue, 2015
2, truck,, 2015
3, car, blue,
4, house,,
5, car, red, 2015

我知道这些清单很可能代表同一个目标,所以我想将这两个清单联系起来。

例如,

  • df1 [1] = df2 [5](3个标识变量)
  • df1 [4] = df2 [3](2个标识变量)
  • df1 [3](house,blue,)可能和df2 [1](house,blue,2015)相同。

我有两个主要问题:如何有效地完成,以及如何为链接提供可靠性。

我想过创建一个公共字段,它将是所有列[item,color,year]和merge的组合。我会得到上面的两场比赛;但他们没有相同的可靠性。我想知道是否会有一种简单的方法可以得分'这种可靠性(目前我正考虑做两次合并,取决于可变的可用性)。 我会创建另一个公共字段,只有2个变量(项目,颜色),并在此合并。这会给我链接:(房子,蓝色,)和(房子,蓝色,2015)。这显然是一个较弱的环节。

任何想法如何在没有顺序合并的情况下做到这一点?我目前的计划是合并3个属性(当它们存在时),然后2个属性(有3个排列)留下什么,并且至少有2个属性,然后只有1个属性。我会根据我用来合并的属性数量给链接提供可靠性分数。

1 个答案:

答案 0 :(得分:0)

ORDER BY 2,NULL,name

enter image description here