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

如何用更简洁方法对同索引同列名的DataFrame对应值做减法

简化同结构数值型DataFrame的对应位置减法

既然你的两个DataFrame索引、列名完全匹配,且所有列都是float64数值类型,完全没必要用select_dtypes,直接执行减法即可:

df3 = df2 - df1

为什么这能行?

Pandas的DataFrame算术运算默认会自动按索引和列名对齐元素,只要两个DF的结构完全一致,就能精准完成对应位置的减法操作,生成的新DF结构和原DF完全相同。

你之前用的select_dtypes在这里属于冗余操作——因为你已经明确所有列都是数值类型,这个过滤步骤没有实际作用,反而多了一次不必要的类型检查。

如果后续遇到包含非数值列的同结构DF,只想对数值列做减法,可以用sub方法的简化写法:

df3 = df2.sub(df1, fill_value=0)  # 仅数值列执行减法,非数值列保留df2的原值

不过这是拓展场景,对你当前的需求来说,直接df2 - df1就是最优解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:57:07