Сгруппируйте общие значения между различными столбцами двух фреймов данных

#pandas #dataframe #pandas-groupby

Вопрос:

У меня есть dataframe A :

 col1 col2 score  A 2 30  B 6 20  C 8 15  D 7 70  E 2 35  

Другой dataframe B :

 col1 col2 score  8 B 30  3 C 20  6 E 15  1 D 70  2 A 35  

Я хочу объединить два кадра данных таким образом, чтобы col1 сгруппировать из dataframe A в col2 из dataframe B при усреднении score из двух кадров данных в порядке убывания. Например:

 result avg_score  D 70  A 32.5  B 25  E 25  C 17.5    

Комментарии:

1. Похоже ((df_a.set_index('col1')['score'] df_b.set_index('col2')['score']) / 2).rename_axis(index='result').reset_index(name='avg_score').sort_values('avg_score', ascending=False) , но мне неясно, есть ли вероятность того, что в col1/col2 может быть несколько дубликатов или они гарантированно уникальны?

2. Существует только один дубликат, а не несколько…

3. @HenryEcker ваше решение, похоже, работает, большое вам спасибо.

4. Другим вариантом было бы объединение : pd.concat([df1.set_index('col1').score, df2.set_index('col2').score]).groupby(level=0).mean()