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

Pandas实现:为DataFrame新增列标记最新时间戳值的历史最高起始时间

解决方案:为Pandas透视表新增历史最高标记列

针对你以日期为列、指标为行的透视表需求,我们可以通过自定义函数结合apply方法快速实现最新日期的历史最高标记功能。

步骤1:准备数据与基础环境

首先导入依赖并创建示例DataFrame:

import pandas as pd
from pandas import Timestamp

# 示例数据
data_dict = {
    Timestamp('2010-01-01 00:00:00'): {'A': 12, 'B': 10}, 
    Timestamp('2010-02-01 00:00:00'): {'A': 5, 'B': 14},
    Timestamp('2010-03-01 00:00:00'): {'A': 2, 'B': 8},
    Timestamp('2010-04-01 00:00:00'): {'A': 11, 'B': 16}
}

# 创建透视表格式的DataFrame(行=指标,列=日期)
df = pd.DataFrame(data=data_dict)
# 确保日期列按升序排列(如果你的透视表未排序)
df = df.sort_index(axis=1)

步骤2:定义标记逻辑函数

编写自定义函数处理每一行(单个指标)的历史最高判断:

def generate_high_label(row, latest_date_col):
    current_value = row[latest_date_col]
    # 获取该行的日期序列与对应数值
    date_sequence = row.index
    value_sequence = row.values
    
    # 判断当前值是否为历史新高
    if current_value == value_sequence.max():
        return "record"
    else:
        # 找到最后一个数值高于当前值的位置
        higher_positions = (value_sequence > current_value).nonzero()[0]
        last_higher_idx = higher_positions[-1]
        # 取该位置的下一个日期作为起始点
        start_date = date_sequence[last_higher_idx + 1]
        return f"自{start_date.strftime('%Y-%m-%d %H:%M:%S')}以来最高"

步骤3:应用函数生成新列

获取最新日期列,将函数应用到每一行生成标记列:

# 获取最新日期对应的列名(最右侧列)
latest_col = df.columns[-1]

# 生成"最高标记"列
df['最高标记'] = df.apply(generate_high_label, args=(latest_col,), axis=1)

最终结果

执行后DataFrame将新增标记列,符合预期需求:

2010-01-01 00:00:00  2010-02-01 00:00:00  2010-03-01 00:00:00  2010-04-01 00:00:00                     最高标记
A                                    12                     5                     2                    11  自2010-02-01 00:00:00以来最高
B                                    10                    14                     8                    16                      record

关键说明

  • 若你的透视表日期列未按时间排序,必须先执行df.sort_index(axis=1)确保日期顺序正确,否则标记逻辑会出错
  • 函数中通过nonzero()定位最后一个高于当前值的历史日期,确保起始点的准确性
  • 日期格式化可根据需求调整strftime的参数,比如简化为%Y-%m-%d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:50:30