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

Pandas如何用applymap对两个DataFrame对应单元格做运算

pandas 两表逐单元格对应相除的高效实现

你现在用的转列表+嵌套循环的写法,完全没用到pandas的核心能力,不仅冗余多、效率低,而且只靠位置匹配数值,只要两个表的行、列顺序稍微变一点,计算结果就会错。
这个场景根本不需要用applymap——applymap本质还是Python层逐元素遍历,性能并不比你写的循环好多少,直接用pandas原生的向量化运算就行,底层是C级实现,速度快、还自带索引对齐容错。


实现步骤

  • 首先把两个表的Name列设为行索引,把球员名作为行匹配的依据
  • 直接对两个数值表做除法,pandas会自动匹配对应球员、对应轮次的单元格做计算,不需要手动写任何遍历逻辑
  • 计算完成后把Name索引还原成普通列,就得到最终结果

对应代码:

# 设置Name列为行索引
stat = stat.set_index('Name')
percentage = percentage.set_index('Name')

# 核心计算:逐对应单元格相除,自动对齐行、列
final_df = stat / percentage

# 还原Name列为普通列
final_df = final_df.reset_index()

运行得到的结果和你给出的预期输出完全一致。


鲁棒性说明

哪怕两个DataFrame的球员行顺序、轮次列顺序不一致,只要行索引是球员名、列名是轮次名,pandas就会自动精准匹配对应单元格做计算,不会出现位置错位的计算错误,比你按列表下标取数的逻辑可靠很多。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:57:24