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

如何合并Pandas DataFrame中重复道路的网格页码数据?

问题分析与解决方法

你的代码问题出在这几点:

  • 内层循环里,df['GridName']是整个列的所有值,不是当前匹配行的单个网格信息,所以每次拼接的是全量数据,必然重复。
  • 最后执行f_t['Grids'] = LV时,是把整个Grids列都覆盖成最后一次循环得到的结果,而不是给每条街道对应各自的聚合值。
  • 嵌套循环完全没必要,Pandas本身就有高效的分组聚合能力,手动循环既慢又容易出错。

正确的解决方式(用Pandas原生操作,高效且准确)

  1. 先处理网格格式,把横杠换成空格:
# 假设df.A的网格列叫GridName,道路名列叫street
df['GridName'] = df['GridName'].str.replace('-', ' ')
  1. 按道路名称分组,把同一条路的网格信息用逗号拼接:
# 分组聚合得到道路-网格映射表
grid_map = df.groupby('street')['GridName'].agg(', '.join).reset_index()
  1. 把聚合结果合并到df.B(也就是你的f_t)里:
# 按道路名称匹配,把网格信息填充到空列中
f_t = f_t.merge(grid_map, on='street', how='left')

这样处理后,df.B里的每条道路都会对应自己所有的网格信息,不会出现重复或全量赋值的问题,而且处理速度比嵌套循环快N倍——Pandas的分组聚合是矢量化操作,专门用来处理这种重复数据聚合的场景。

内容的提问来源于stack exchange,提问作者I Don't Know What I'm Doing

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 03:16:06