如何使用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
相关产品推荐
相关产品推荐

