复制含nan的pandas Interval列表报NameError: name 'nan' is not defined如何解决
报错原因
- Python 没有内置名为
nan的全局变量,你从 DataFrame 输出结果中复制到的nan只是文本形式的显示值,直接写在代码里解释器无法识别,因此触发NameError。
解决方法
方法1:使用 NumPy 定义的 nan(和 pandas 兼容性最佳)
先导入 numpy 库,将列表里的 nan 替换为 np.nan 即可:
from pandas import Interval import numpy as np inter = [Interval(32.252, 40.21, closed='right'), Interval(40.21, 48.168, closed='right'), np.nan] print(inter)
方法2:使用Python原生nan(无需导入第三方库)
直接用 float('nan') 替代 nan,不需要额外导入任何依赖包:
from pandas import Interval inter = [Interval(32.252, 40.21, closed='right'), Interval(40.21, 48.168, closed='right'), float('nan')] print(inter)
补充说明
如果是批量复制的大量包含 nan 的列表代码,可以直接用编辑器的全局替换功能,把所有单独出现的 nan 统一替换为上面两种合法写法即可。
内容的提问来源于stack exchange,提问作者john johns
相关产品推荐
相关产品推荐

