两个DataFrame跨列匹配分组计算score平均值并排序的实现问题
实现方案(基于Pandas)
- 核心逻辑为通过指定字段关联两张表,匹配后计算对应score的平均值,再按平均值降序排序,代码如下:
import pandas as pd # 1. 关联两张表,匹配规则为A表col1 = B表col2 merge_df = pd.merge(A, B, left_on='col1', right_on='col2', suffixes=('_A', '_B')) # 2. 计算两个score的平均值 merge_df['avg_score'] = (merge_df['score_A'] + merge_df['score_B']) / 2 # 3. 整理输出字段并按avg_score降序排序 res_df = merge_df[['col1', 'avg_score']].rename(columns={'col1': 'result'}) res_df = res_df.sort_values('avg_score', ascending=False).reset_index(drop=True) # 输出结果 print(res_df)
- 运行后输出结果和你给出的预期示例完全一致:
result avg_score 0 D 70.0 1 A 32.5 2 B 25.0 3 E 25.0 4 C 17.5
内容的提问来源于stack exchange,提问作者muzamil
相关产品推荐
相关产品推荐

