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

如何在日期列变化时获取另一列的下一个对应值

实现DataFrame添加下一个日期的Value列

针对你提供的DataFrame需求,可通过以下步骤实现:

步骤说明

  1. 确保日期列是datetime类型,保证排序和偏移逻辑的准确性
  2. 提取每个日期对应的唯一Value值(同一日期的Value值一致)
  3. 对去重后的日期序列做偏移处理,获取每个日期对应的下一个日期的Value
  4. 将映射关系匹配回原DataFrame的每一行

代码实现

import pandas as pd

# 构造示例DataFrame
data = {
    'Date': ['2023-01-01', '2023-01-01', '2023-02-01', '2023-03-01', '2023-04-01', '2023-04-01', '2023-05-01'],
    'Value': [1000, 1000, 1002, 1004, 1006, 1006, 1009]
}
df = pd.DataFrame(data)

# 1. 转换日期列为datetime类型
df['Date'] = pd.to_datetime(df['Date'])

# 2. 生成日期到下一个日期Value的映射
date_unique = df.drop_duplicates(subset='Date').sort_values('Date')
date_unique['Desired Output'] = date_unique['Value'].shift(-1)
date_value_map = date_unique.set_index('Date')['Desired Output'].to_dict()

# 3. 映射到原DataFrame
df['Desired Output'] = df['Date'].map(date_value_map)

print(df)

输出结果

Date  Value  Desired Output
0 2023-01-01   1000          1002.0
1 2023-01-01   1000          1002.0
2 2023-02-01   1002          1004.0
3 2023-03-01   1004          1006.0
4 2023-04-01   1006          1009.0
5 2023-04-01   1006          1009.0
6 2023-05-01   1009             NaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:10:00