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

Python如何实现行列名完全不同的两个DataFrame指定列相减

Python实现方案

我们可以基于pandas库完成该需求,推荐优先按windcodes字段关联计算,避免两个DataFrame行顺序不一致导致计算错误:

前置依赖

需要先导入pandas库:

import pandas as pd

推荐实现步骤

  • 按公共列windcodes将两个DataFrame左连接,保证DataFrame1的数据全部保留
  • 新增yield-CALC列,取值为yield列减CALC列的结果
  • 筛选保留原DataFrame1的所有列和新增列,得到最终DataFrame3

示例代码

# 两个表按windcodes关联
merge_df = pd.merge(DataFrame1, DataFrame2, on='windcodes', how='left')
# 计算差值列
merge_df['yield-CALC'] = merge_df['yield'] - merge_df['CALC']
# 筛选列得到结果
DataFrame3 = merge_df[['windcodes', 'name', 'yield', 'perp', 'yield-CALC']].copy()

简化方案(仅当两表行顺序完全匹配时可用)

如果你已经确认两个DataFrame的行完全对应、windcodes顺序没有错位,也可以直接按行相减:

DataFrame3 = DataFrame1.copy()
DataFrame3['yield-CALC'] = DataFrame3['yield'] - DataFrame2['CALC']

注意事项

如果yield或者CALC列是字符串格式,需要先转换为数值格式再计算,可以用pd.to_numeric()方法处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:06:08