如何在BigQuery DataFrame的时间戳列中添加天数?
解决BigQuery DataFrame添加日期列的报错问题
错误原因
直接使用Python标准库的timedelta与BigQuery DataFrame的时间戳列相加会报错,因为BigQuery客户端DataFrame的列是SQL表达式对象,而非本地datetime数据,无法兼容Python的timedelta类型。
解决方案
根据你的DataFrame类型选择对应方法:
情况1:未执行的BigQuery客户端DataFrame(未拉取到本地)
使用BigQuery内置的date_add函数构建SQL表达式:
from google.cloud import bigquery from google.cloud.bigquery import functions as f # 新增TEMP_LABEL_END_TS列,给creation_ts加7天 df = df.with_column("TEMP_LABEL_END_TS", f.date_add(df["creation_ts"], days=7))
情况2:已拉取到本地的pandas DataFrame
先确保时间戳列是datetime类型,再执行日期运算:
import pandas as pd from datetime import timedelta # 转换creation_ts列为datetime类型(如果当前不是) df["creation_ts"] = pd.to_datetime(df["creation_ts"]) # 添加7天生成新列 df["TEMP_LABEL_END_TS"] = df["creation_ts"] + timedelta(days=7)
内容的提问来源于stack exchange,提问作者Chetana Tanmayee
相关产品推荐
相关产品推荐

