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

如何使用Python变量yesterday筛选DataFrame中的指定行?

筛选DataFrame中匹配指定日期的行

嘿,这事儿其实挺简单的,根据你给出的场景(yesterday 是字符串类型,datestring 列也是字符串格式的日期),有几种直接的方法可以实现:

  • 方法一:直接使用布尔索引
    因为你的 datestring 列和 yesterday 变量都是同格式的字符串(YYYY-MM-DD),直接用相等判断生成布尔筛选器就行:

    filtered_df = df[df['datestring'] == yesterday]
    

    这里 df['datestring'] == yesterday 会返回一个布尔类型的 Series,其中值为 True 的位置就是符合条件的行,用它来索引原 DataFrame 就能得到筛选后的结果。

  • 方法二:用 .loc 做更明确的标签筛选
    如果想要代码可读性更强(或者后续需要对筛选后的行做修改操作),推荐使用 .loc 索引器:

    filtered_df = df.loc[df['datestring'] == yesterday]
    

    .loc 专门用于基于标签的索引,在处理 DataFrame 筛选和赋值时会更安全,避免出现链式索引的潜在问题。

额外补充:应对日期格式不一致的情况

如果后续你遇到 datestring 列不是字符串而是 datetime 类型,或者需要把 yesterday 转为日期对象的场景,可以先统一格式再筛选:

import pandas as pd
# 把datestring列转为datetime类型
df['datestring'] = pd.to_datetime(df['datestring'])
# 把yesterday转为date对象
yesterday_dt = datetime.date.fromordinal(datetime.date.today().toordinal()-1)
# 提取date部分进行匹配
filtered_df = df[df['datestring'].dt.date == yesterday_dt]

不过回到你的当前场景,前两种方法完全够用啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:44:16