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

如何对Pandas两个不同DataFrame做行相减并替换原数值

你可以通过pandas的布尔索引+loc定位的方式直接修改目标行数值,核心实现逻辑如下:

核心代码

df1.loc[df1['BankName'] == 'Bank1', ['Value1', 'Value2']] -= df2.iloc[0].values

完整可运行示例

import pandas as pd

# 构建df1
data = [['Bank1', 10, 55], ['Bank2', 15,65], ['Bank3', 14,54]]
df1 = pd.DataFrame(data, columns = ['BankName', 'Value1','Value2'])
# 构建df2
df2 = pd.DataFrame([[3, 2]], columns = ['Value1','Value2'])

# 执行修改
df1.loc[df1['BankName'] == 'Bank1', ['Value1', 'Value2']] -= df2.iloc[0].values

# 输出结果
print(df1)

运行输出

BankName  Value1  Value2
0    Bank1       7      53
1    Bank2      15      65
2    Bank3      14      54

逻辑说明

  • 用df1['BankName'] == 'Bank1'筛选出Bank1对应的行
  • 显式指定需要修改的Value1、Value2两列
  • 取出df2第一行的数值做广播减法,直接赋值回原位置完成修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:36:04