如何让gspread_dataframe读取谷歌表格时将带错误信息的#N/A等转为NaN?
解决方案
你可以直接在get_as_dataframe()的na_values参数中传入一个lambda表达式,匹配所有以#N/A或#DIV/0!开头的单元格值,将它们转为NaN。
示例代码
import gspread from gspread_dataframe import get_as_dataframe # 假设已通过gspread获取目标工作表对象worksheet df = get_as_dataframe( worksheet, na_values=lambda x: isinstance(x, str) and (x.startswith('#N/A') or x.startswith('#DIV/0!')) )
补充说明
- 这个lambda函数会先判断单元格值是否为字符串类型,避免对数值型等非字符串值误处理
- 如果需要覆盖其他谷歌表格错误值(如
#VALUE!、#REF!),直接在lambda的条件中添加对应的startswith判断即可:na_values=lambda x: isinstance(x, str) and (x.startswith('#N/A') or x.startswith('#DIV/0!') or x.startswith('#VALUE!'))
内容的提问来源于stack exchange,提问作者AK91
相关产品推荐
相关产品推荐

