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

如何批量计算Pandas DataFrame中同后缀列的差值

如何批量计算Pandas DataFrame中同后缀列的差值

嗨,你这个需求太实用了,完全不用手动硬编码每个后缀的差值列!我给你整理了一套自动化、易扩展的解决方案,不管以后新增多少后缀或者日期,都能轻松适配:

核心思路

  1. 自动提取所有唯一的列后缀(比如001、002),不用手动指定;
  2. 把要计算的差值规则整理成可循环的规则组,比如date3 - date2对应diff_1前缀;
  3. 循环遍历每个后缀和规则,自动构造列名并计算差值,彻底告别重复代码。

完整代码实现

import pandas as pd
import numpy as np

# 第一步:生成你的原始DataFrame
branch_names = [f"Branch_{i}" for i in range(1, 11)]
date_1 = '20241231'
date_2 = '20250214'
date_3 = '20250220'

data = {
    'Branch': branch_names,
    date_1 + '_001': np.random.randint(60, 90, 10),
    date_1 + '_002': np.random.randint(60, 90, 10),
    date_1 + '_003': np.random.randint(60, 90, 10),
    date_2 + '_001': np.random.randint(60, 90, 10),
    date_2 + '_002': np.random.randint(60, 90, 10),
    date_2 + '_003': np.random.randint(60, 90, 10),
    date_3 + '_001': np.random.randint(60, 90, 10),
    date_3 + '_002': np.random.randint(60, 90, 10),
    date_3 + '_003': np.random.randint(60, 90, 10)
}

df = pd.DataFrame(data)

# 第二步:批量计算差值的核心逻辑
# 1. 自动提取所有唯一的列后缀(排除Branch列)
suffixes = list(set(col.split('_')[-1] for col in df.columns if col != 'Branch'))

# 2. 定义差值计算规则:(较晚日期, 较早日期, 差值列的前缀)
diff_rules = [
    (date_3, date_2, 'diff_1'),  # date3 - date2 → 列名diff_1_后缀
    (date_3, date_1, 'diff_2')   # date3 - date1 → 列名diff_2_后缀
]

# 3. 循环遍历每个后缀和规则,自动生成差值列
for suffix in suffixes:
    for later_date, earlier_date, diff_prefix in diff_rules:
        # 自动构造要计算的列名
        later_col = f"{later_date}_{suffix}"
        earlier_col = f"{earlier_date}_{suffix}"
        diff_col_name = f"{diff_prefix}_{suffix}"
        # 计算差值并赋值给新列
        df[diff_col_name] = df[later_col] - df[earlier_col]

# 查看结果(可选)
print(df.head())

方案优势

  • 完全自动化:不用手动编写每一行df['diff_*'] = ...的代码,彻底摆脱硬编码的繁琐;
  • 超强扩展性:以后如果新增_004这类后缀,或者新增date_4这类日期,只需要调整diff_rules或者直接运行代码,自动适配所有新列;
  • 低出错率:避免手动输入列名时的拼写错误,代码逻辑清晰易维护。

如果你的列名格式有变动(比如分隔符不是_),只需要调整col.split('_')里的分隔符即可,灵活性拉满!

备注:内容来源于stack exchange,提问作者hoa tran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 11:09:34