You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas按字符串而非时间格式分组取每组最大值并避免多级索引

解决方案

你可以在现有代码的末尾追加以下代码实现需求,两种方案均不会生成多级索引,输出列名与你预设的merged_frame列完全一致:

方案1:排序去重法(最简洁,适合绝大多数场景)

# 按相似度得分降序排序,同一供应商的最高得分行自动排在分组最前
merged_frame_sorted = merged_frame.sort_values(by='Similarity', ascending=False)
# 按供应商名称去重,保留每组第一行即最高得分行,同时重置索引消除原有行号
result_df = merged_frame_sorted.drop_duplicates(subset='Supplier name', keep='first').reset_index(drop=True)

方案2:组内最大值索引法(适合需要保留全部同分最高得分行的场景)

如果同一个供应商存在多条相似度得分相同的最高记录,需要全部保留可以用该方案:

# 按供应商分组,取每个组内相似度最高的行索引
max_sim_idx = merged_frame.groupby('Supplier name')['Similarity'].idxmax()
# 根据索引提取对应行后重置索引
result_df = merged_frame.loc[max_sim_idx].reset_index(drop=True)

如果需要调整输出列的顺序/筛选指定列,直接在最终结果上按需求取列即可,示例:

# 按你需要的列顺序调整列表内的列名即可
result_df = result_df[["Supplier name","Street_y","Similarity","Streetnumber"]]

内容的提问来源于stack exchange,提问作者SMS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:54:07