如何用Pandas将指定列的特定行值从另一列所有元素中减去?
Pandas列元素批量减法操作方案
核心步骤
因为Pandas默认采用0起始索引,你提到的第三行(对应MAIN_003条目)的位置索引是2,按以下两步操作即可:
提取目标基准值
从VBIAS_5DUT_BOARD[V]列取出第三行的数值:target_bias = df['VBIAS_5DUT_BOARD[V]'].iloc[2]执行批量减法
可以直接修改原列,或者生成新列(推荐保留原始数据,用新列存储结果):- 修改原列:
df['VBIAS_INTERFACE_BOARD[V]'] -= target_bias - 生成新列:
df['VBIAS_INTERFACE_ADJUSTED[V]'] = df['VBIAS_INTERFACE_BOARD[V]'] - target_bias
- 修改原列:
完整可运行示例
import pandas as pd # 构造你的原始DataFrame raw_data = { 'Device_ID': ['MAIN_001', 'MAIN_002', 'MAIN_003', 'MAIN_004', 'MAIN_005'], 'Die_Version': ['0x81'] * 5, 'Temp(deg)': [25] * 5, 'Supply[V]': [1.6] * 5, 'VBIAS_5DUT_BOARD[V]': [38.77, 38.66, 38.74, 38.35, 38.26], 'VBIAS_INTERFACE_BOARD[V]': [38.86, 38.75, 38.82, 38.41, 38.33] } df = pd.DataFrame(raw_data) # 提取第三行的基准值 target_bias = df['VBIAS_5DUT_BOARD[V]'].iloc[2] # 生成调整后的新列 df['VBIAS_INTERFACE_ADJUSTED[V]'] = df['VBIAS_INTERFACE_BOARD[V]'] - target_bias # 查看结果 print(df)
运行后你会看到新列VBIAS_INTERFACE_ADJUSTED[V]的数值就是原列减去38.74后的结果,比如第一行是0.12,第二行是0.01,以此类推。
内容的提问来源于stack exchange,提问作者Confused
相关产品推荐
相关产品推荐

