使用pd.read_csv()读取谷歌表格时文本内容无法读取的问题
解决Pandas读取谷歌表格混合类型列丢失文本的问题
问题根源
你使用的gviz/tq导出接口属于Google Visualization API,它会自动对列做类型推断:当一列同时包含数值和文本时,会默认以多数类型(此案例中为数值)为准,直接过滤掉文本内容,导致读取结果缺失文本。
解决步骤
修改导出链接格式
改用谷歌表格原生CSV导出链接,该方式会保留所有单元格的原始内容,不会做自动类型推断。注意这里需要使用表格的数字GID(而非sheet名称),你可以在打开目标sheet时,从地址栏的gid=xxx字段中获取对应数字。修改后的代码:
def build_sheet_url(doc_id, sheet_gid): return f"https://docs.google.com/spreadsheets/d/{doc_id}/export?format=csv&gid={sheet_gid}" # 替换为你的文档ID和sheet的GID sheet_url = build_sheet_url("你的doc_id", "你的sheet_gid") # 强制所有列以字符串类型读取,避免后续类型转换问题 df = pd.read_csv(sheet_url, dtype=str)确认表格权限设置
必须将谷歌表格设置为公开可查看(或至少允许链接访问),否则无法通过URL直接读取内容。
补充说明
如果仍有个别列类型处理问题,可使用converters参数指定单列的转换规则,例如:
df = pd.read_csv(sheet_url, converters={"Column1": str, "Column2": str})
内容的提问来源于stack exchange,提问作者NDen
相关产品推荐
相关产品推荐

