c159 发表于 2021-03-29 16:39

求助求助Python raise KeyError(key),如何处理?

Excel公式转换为Python代码提示错误: raise KeyError(key)KeyError: '网络分类一级',麻烦帮忙看看什么问题。

# =IF(U2="集客","是",IF(OR(AE2=" ",AE2="",AE2=","),"否","是")) U "网络分类一级" AE '业务影响分类标签'

Python:
def zygj(a,b):
    if "集客" in a or b is np.nan or b != ",":
      return "是"
    else:
      return "否"
zxlb["是否重要故障"] = zxlb.apply(lambda x:zygj(x['网络分类一级'],x['业务影响分类标签']))


运行错误提示:
File "<ipython-input-61-7cbf31871cef>", line 7, in <module>
    zxlb["是否重要故障"] = zxlb.apply(lambda x:zygj(x['网络分类一级'],x['业务影响分类标签']))

File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py", line 7548, in apply
    return op.get_result()

File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\apply.py", line 180, in get_result
    return self.apply_standard()

File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\apply.py", line 271, in apply_standard
    results, res_index = self.apply_series_generator()

File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\apply.py", line 300, in apply_series_generator
    results = self.f(v)

File "<ipython-input-61-7cbf31871cef>", line 7, in <lambda>
    zxlb["是否重要故障"] = zxlb.apply(lambda x:zygj(x['网络分类一级'],x['业务影响分类标签']))

File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\series.py", line 882, in __getitem__
    return self._get_value(key)

File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\series.py", line 989, in _get_value
    loc = self.index.get_loc(label)

File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\range.py", line 358, in get_loc
    raise KeyError(key)

KeyError: '网络分类一级'

ddd010 发表于 2021-04-20 08:55

用 get方法,最好设置一个默认值。
页: [1]
查看完整版本: 求助求助Python raise KeyError(key),如何处理?