笛卡尔自连接查找唯一对Python

时间:2019-02-27 04:56:17

标签: python pandas join unique

我有一个数据框,我想在一个特定的列上进行笛卡尔联接。看起来像这样:

Name
abc
abd
abe

我使用了来自sklearn的笛卡尔联接:

df_new = pd.DataFrame(cartesian((df['Name'], df['Name'])), columns= 
['Name1', 'Name2'])
df_new['Score'] = df_new.apply(lambda somefunc:)
df_new = df_new[df_new['Name1']!=df_new['Name2']

所以我拥有Name1和Name2的所有组合以及我所做的一些计算。现在,我想找到一种汇总对(顺序无关紧要)并平均得分的方法。我还没有找到轻松实现此目的的方法。我尝试压缩两个“名称”列,并使用列表和设置函数,但均未成功。

笛卡尔连接后的数据框如下所示:

Name1, Name2, Score
abc, abd, 90
abc, abe, 80
abc, abg, 85
abd, abc, 70

所以我想将其汇总为:

Name1, Name2, Score
abc, abd, 80
abc, abe, 80
abc, abg, 85

我考虑过不使用笛卡尔联接,但是我确实需要查看有序对的分数,然后聚合为唯一对。任何建议将不胜感激。

0 个答案:

没有答案