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

Pandas非唯一Datetime索引下如何用.loc更新对应索引的最后一行

实现方案

可以仅基于索引值完成目标操作,不需要重建索引,通过布尔条件配合分组计数即可用.loc实现精准更新:

示例代码

# 已知目标索引值
target_date = df.index[0] # 替换为你实际要匹配的日期索引值

# 仅更新对应索引的最后一行value列为5
df.loc[
    (df.index == target_date) & (df.groupby(level=0).cumcount(ascending=False) == 0), 
    'value'
] = 5

运行结果

value sort
datetime              
2021-10-22      1    a
2021-10-22      2    b
2021-10-22      3    c
2021-10-22      5    d

逻辑说明

  1. groupby(level=0).cumcount(ascending=False) 会对每个相同索引的行从后往前生成序号,对应索引的最后一行序号固定为0
  2. 两层布尔条件叠加就可以唯一筛选出目标索引的最后一行,通过.loc赋值不会触发副本警告,完全符合你的使用限制

你代码报错的原因

你之前调用df.index[-1].argmax()是对单个datetime.date对象调用argmax方法,该方法属于数组/序列对象,单个标量没有这个方法,所以抛出属性错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:39:03