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

如何计算两个相同维度pandas DataFrame的差值

两个同维度pandas DataFrame差值计算方案

核心逻辑为保留非数值列原值,仅对数值类型列做对应位置的减法计算,完整可运行代码如下:

import pandas as pd

# 示例输入数据
df1 = pd.DataFrame({
    'x': ['a', 'b', 'c', 'd', 'e'],
    'y': [1,    1,   1,   1,   1],
    'z': [2,    2,   2,   2,   2]})

df2 = pd.DataFrame({
    'x': ['a', 'b', 'c', 'd', 'e'],
    'y': [1,    1,   1,   1,   1],
    'z': [3,    3,   3,   3,   3]})

# 差值计算
delta_df = df1.copy()
# 筛选所有数值类型列
numeric_cols = df1.select_dtypes(include='number').columns
# 数值列做减法,当前为df2减df1,需反向差值可交换左右操作数
delta_df[numeric_cols] = df2[numeric_cols] - df1[numeric_cols]

print(delta_df)

运行后输出结果和预期一致:

x  y  z
0  a  0  1
1  b  0  1
2  c  0  1
3  d  0  1
4  e  0  1

可选校验逻辑

如果需要提前确认两个DataFrame的非数值列完全一致,可在计算前增加校验代码:

assert df1.select_dtypes(exclude='number').equals(df2.select_dtypes(exclude='number')), "两个DataFrame的非数值列内容不一致"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:57:02