You need to enable JavaScript to run this app. 如何提升pandas索引与赋值速度,快速合并万行级DataFrame
优惠活动
大模型
产品
解决方案
定价
更多

如何提升pandas索引与赋值速度,快速合并万行级DataFrame

高效合并DataFrame方案

核心实现

你的需求本质是两个表基于Size、Gender两个字段的等值关联,直接使用pandas内置的向量化关联方法merge即可,毫秒到秒级即可完成1万行规模的表关联,完全不需要手动扩表、分组、逐行赋值操作。

核心代码如下:

import pandas as pd

# on参数指定关联键,suffixes用来区分两个表重名字段(比如颜色字段)
merged_df = pd.merge(
    left=df1,
    right=df2,
    on=["Size", "Gender"],
    suffixes=("_shirt", "_pants")
)

原方案耗时原因

  • 逐行loc赋值属于行级迭代操作,pandas行迭代性能比向量化操作低2到3个数量级
  • 手动扩表、多层groupby分组的逻辑完全重复了merge内置的哈希关联逻辑,额外产生了大量不必要的内存拷贝和计算开销

可选优化

如果只需要保留部分字段,可以在关联前先对两个表做字段裁剪,进一步降低内存占用、提升速度:

# 示例:仅保留需要的字段再关联
df1_filter = df1[["Size", "Gender", "shirt_id", "color", "price"]]
df2_filter = df2[["Size", "Gender", "pants_id", "color", "price"]]
merged_df = pd.merge(df1_filter, df2_filter, on=["Size", "Gender"], suffixes=("_shirt", "_pants"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 22:24:01