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

Python中如何获取对应最新日期的Values_2列数值

解决获取最新日期对应Values_2的问题

先纠正你代码里的几个关键错误:

  • 第一行df = pd.to_datetime(['Date'])完全错误,这是把字符串列表['Date']转成datetime对象,得到的不是你的原始数据框,后续操作自然会出错。
  • df["Date"].max():因为上面的df是单个元素的Series,不存在"Date"列,会触发KeyError。
  • df[['Date'] == '22/01/03']:语法错误,列表和字符串比较会得到布尔值False,用这个索引数据框会报错;而且你不需要用groupby求均值,直接筛选取对应值即可。

正确实现步骤(假设你已经通过pd.read_csv或其他方式加载了原始数据框)

  1. 先将Date列转为datetime类型(避免字符串日期排序/比较的潜在问题,比如不同格式的日期):
import pandas as pd

# 转换Date列格式,适配你的日/月/年格式
df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%y')
  1. 方法一:通过最大日期筛选
# 获取最新日期
latest_date = df['Date'].max()
# 筛选对应行并取出Values_2的值
result = df.loc[df['Date'] == latest_date, 'Values_2'].iloc[0]
print(result)  # 输出13
  1. 方法二:按日期排序后取末尾/开头值
# 按日期升序排序,取最后一行的Values_2
result = df.sort_values('Date')['Values_2'].iloc[-1]

# 或者按日期降序排序,取第一行的Values_2
result = df.sort_values('Date', ascending=False)['Values_2'].iloc[0]

如果你的Date列暂时不想转成datetime(不推荐,因为字符串日期在跨月/跨年时容易出问题),也可以直接用字符串比较(仅适用于你的日期格式是日/月/年且位数统一的情况):

latest_date_str = df['Date'].max()
result = df.loc[df['Date'] == latest_date_str, 'Values_2'].iloc[0]

内容的提问来源于stack exchange,提问作者Markus Fürst

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:10:27