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

使用Pandas从谷歌表格动态提取前一日数据失败求助

问题解决:动态日期过滤谷歌表格数据失效的问题

核心问题

你代码里的错误在于把变量pt和ct用单引号包裹成了字符串'pt'和'ct',这会让Pandas把它们当成文本而非日期变量来比较,自然无法匹配到正确数据。

修正后的代码

import pandas as pd
import datetime

sheet_id = "19SzfcL3muVeISycG5eFYUqwrwwReGETZsNtl-euGU"
sheet_name = "October-2022"
url=f"https://docs.google.com/spreadsheets/d/{sheet_id}/gviz/tq?tqx=out:csv&sheet={sheet_name}"

# 获取昨日和今日的日期对象(仅保留日期部分,去掉时分秒)
today = datetime.datetime.today().date()
yesterday = today - datetime.timedelta(days=1)

df = pd.read_csv(url)
# 将Timestamp列转为日期格式,确保只保留日期部分
df['Timestamp1'] = pd.to_datetime(df['Timestamp'], format='%Y-%m-%d').dt.date

# 直接使用日期变量进行过滤,无需加引号
filtered_df = df.loc[(df['Timestamp1'] == yesterday)]
filtered_df

额外优化点

  • 因为你要提取的是前一日的所有数据,直接用==匹配昨日日期更精准,不用范围判断(除非Timestamp里包含时分秒,这时候再用> 昨日0点和< 今日0点的范围逻辑)。
  • 把日期变量转成date对象,和Timestamp1的类型统一,避免因时分秒导致的匹配误差。
  • 移除了未用到的re和dateutil.parser库,精简代码结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:15:48