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

Python中基于关键列计算绝对差并设置ID列为首列的方法

数据集列绝对差计算与列序调整

合并后的数据集

已将两个数据集合并为如下DataFrame:

DateIDA_1A_2B_1B_2C_1C_2
01-01-20241134989
01-01-20243987432
01-01-20246102030405060

其中A_1、B_1、C_1来自dataset1,A_2、B_2、C_2来自dataset2,ID列在两个数据集中唯一。

需求说明

需完成两项操作:

  • 计算对应列(A_1与A_2、B_1与B_2、C_1与C_2)的绝对差
  • 将ID列设为结果DataFrame的第一列

初始实现代码

初始代码可实现列间绝对差计算,但未将ID列设为首列,且存在语法错误(已修正):

import pandas as pd
import numpy as np

# 修正原代码的列名格式与字符串拼接错误
columns = ['A', 'B', 'C']
results_df = pd.DataFrame()
for col in columns:
    diff = np.abs(df[f'{col}_1'] - df[f'{col}_2'])
    results_df[f'{col}_diff'] = diff.round()

列序调整解决方案

初始代码生成的结果未包含ID、Date列,且ID列未处于首列。通过以下代码补充列并调整顺序:

# 补充原数据集的Date和ID列
results_df['DATE'] = df['Date']
results_df['ID'] = df['ID']

# 调整列顺序,将ID设为第一列
cols = ['ID', 'DATE'] + [col for col in results_df.columns if col not in ['ID', 'DATE']]
results_df = results_df[cols]

最终结果DataFrame结构如下:

IDDATEA_diffB_diffC_diff
101-01-2024251
301-01-2024131
601-01-2024101010

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 14:40:09