如何使用pandas按文件名分组遍历DataFrame处理对应行数据
实现方案
最符合Pandas设计逻辑的实现方式是使用groupby方法按file列分组,直接得到每个文件对应的所有坐标子集,无需手动去重+筛选,代码更简洁高效。
示例代码
import pandas as pd # 按file列分组迭代,每个文件名仅遍历一次 for file_path, coord_group in df.groupby("file"): # 此处写你自己的图片打开逻辑,每个文件仅会执行一次打开操作 # 例:img = cv2.imread(file_path) # 直接取分组内的所有x、y坐标 x_list = coord_group["x"] y_list = coord_group["y"] # 此处写你自己的绘图逻辑,可直接批量处理所有坐标,也可逐点绘制 for x, y in zip(x_list, y_list): # 逐点绘制逻辑 pass # 此处写你自己的图片保存/展示逻辑
优势说明
- 不需要手动调用
unique()获取文件名后再单独筛选对应坐标,Pandas内部已完成分组聚合,性能优于手动筛选的朴素方法 - 分组得到的
coord_group是标准DataFrame结构,可直接使用Pandas的所有数据处理方法对坐标做批量过滤、修改等操作 - 天然保证每个文件名仅处理一次,完全符合需求
内容的提问来源于stack exchange,提问作者schoon
相关产品推荐
相关产品推荐

