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

如何让DataFrame所有行减去指定行且保留ID列?

解决方案

你可以用Pandas直接对指定列执行广播减法操作,无需改动ID列,具体实现如下:

步骤1:导入库并构造数据

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({
    'ID': [111, 222, 333],
    'A': [0, 2, 3],
    'B': [1, 3, 4],
    'C': [2, 4, 5],
    'D': [3, 5, 6]
})

# 构造要减去的行数据(转为Series,确保列名匹配)
subtract_row = pd.Series({'A':0, 'B':1, 'C':0, 'D':1})

步骤2:执行减法操作

直接针对A、B、C、D列进行广播减法,ID列会自动保留:

df[['A', 'B', 'C', 'D']] -= subtract_row

步骤3:查看结果

print(df)

输出结果:

ID  A  B  C  D
0  111  0  0  2  2
1  222  2  2  4  4
2  333  3  3  5  5

补充说明

  • 如果你的单行数据是从CSV文件读取的,可以用以下方式转为匹配的Series:
    subtract_df = pd.read_csv('your_file.csv')
    subtract_row = subtract_df.iloc[0]
    
  • Pandas的广播机制会自动匹配列名,确保减法仅在对应列执行,ID列完全不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:02:40