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

Python如何筛选pandas DataFrame中2021-09-13至2021-09-16区间的行数据

问题原因

你之前的代码失效的核心原因是未将日期相关字段转为pandas datetime类型,字符串格式的日期切片不会按时间范围匹配,仅会匹配到完全对应起止值的行。

解决方案

推荐使用最稳妥的布尔筛选方案,无需依赖索引设置:

import pandas as pd

# 第一步:将date列转为datetime格式
df['date'] = pd.to_datetime(df['date'])

# 第二步:定义起止日期,做区间筛选
date_start = pd.to_datetime('2021-09-13')
date_end = pd.to_datetime('2021-09-16')
df = df[(df['date'] >= date_start) & (df['date'] <= date_end)]

如果要沿用你之前的索引切片写法,需要先把行索引转为DatetimeIndex并排序:

# 转换索引为datetime格式并排序
df.index = pd.to_datetime(df.index)
df = df.sort_index()

date_start = df['date'].iloc[-4]
date_end = df['date'].iloc[-1]
df = df.loc[date_start:date_end]

两种方案都可以得到你预期的4行结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:48:03