我有一个数据框,我想在一个特定的列上进行笛卡尔联接。看起来像这样:
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
我考虑过不使用笛卡尔联接,但是我确实需要查看有序对的分数,然后聚合为唯一对。任何建议将不胜感激。