#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()