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

如何在Pandas中获取DateTimeIndex对应的DataFrame值?

解决DateTimeIndex索引DataFrame获取idxmax对应值的问题

针对你给出的代码场景,你遇到的问题是idx = df_limited.idxmax()得到的是最大值对应的Timestamp索引,但之前的方法要么返回Series/DataFrame,要么因类型不匹配报错,以下是正确的解决方式:

现有方法无效的原因

  • df_limited.loc[idx]:因为df_limited是单列DataFrame,这行代码返回的是整行的Series,而非单个数值。
  • df_limited.iloc[idx]:iloc只接受整数位置参数,而idx是Timestamp类型,类型不匹配导致报错。
  • df_limited[(df_limited.index == idx)]:返回的是仅含目标行的DataFrame,不是单个值。

正确获取值的方法

方法1:从loc返回的Series中提取数值

loc[idx]返回目标行的Series,只需提取第一个元素即可(因是单列):

max_val = df_limited.loc[idx].iloc[0]
# 或者用values直接取数组第一个元素
max_val = df_limited.loc[idx].values[0]

方法2:用at方法直接定位单元格(更高效)

at是针对单个单元格的快速访问方法,需指定索引和列名:

# 取DataFrame的唯一列名
col_name = df_limited.columns[0]
max_val = df_limited.at[idx, col_name]

方法3:直接获取最大值(无需先获取idx)

如果仅需拿到最大值,不需要先获取索引,可直接用max():

max_val = df_limited.max().values[0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:39:14