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

Pandas如何选择iloc[-7]前最后一个Monday至DataFrame底部的所有行

实现步骤
  1. 先定位到倒数第7行对应的位置索引,作为查找周一的截止边界
  2. 提取从DataFrame开头到该截止边界的所有行,筛选出Day of Week为Monday的行,取最后一个匹配行作为起始行
  3. 截取从起始行到DataFrame末尾的所有数据即可,不用单独判断倒数第7行是否为周一(如果倒数第7行本身是周一,会自动被识别为最近的周一)

完整代码

通用兼容版本(支持任意索引类型)

n_rows = len(day_csv)
# 倒数第7行对应的位置索引
check_pos = n_rows - 7

# 查找截止到check_pos的所有周一的索引,取最近的一个
latest_monday_label = day_csv.iloc[:check_pos + 1][day_csv['Day of Week'] == 'Monday'].index[-1]
# 将索引标签转为iloc所需的位置索引
latest_monday_pos = day_csv.index.get_loc(latest_monday_label)

# 截取目标数据
result_df = day_csv.iloc[latest_monday_pos:]

简化版本(仅适用于默认整数递增索引)

如果你的DataFrame用的是pandas默认生成的从0开始的整数索引,可以直接简化为:

check_pos = len(day_csv) -7
latest_monday_pos = day_csv.iloc[:check_pos+1][day_csv['Day of Week'] == 'Monday'].index[-1]
result_df = day_csv.iloc[latest_monday_pos:]

边界说明

如果存在数据行数不足7行的场景,可以提前加长度校验:

if len(day_csv) <7:
    # 自定义不足7行的处理逻辑,比如直接返回全部数据
    result_df = day_csv.copy()
else:
    # 执行上述筛选逻辑
    pass

内容的提问来源于stack exchange,提问作者Kartöfluvofan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:18:00