futui 发表于 2023-4-25 12:08:21

字典运用出现键错误的问题,求大师帮忙,谢谢

df_fnd['AA'] = df_fnd['AA'].apply(lambda x: cmp_dic)
出现错误:   KeyError: None

如果df_fnd['AA'] = df_fnd['AA'].fillna('未知')
又出现 KeyError: '未知'

这个有什么办法解决?求大虾帮忙,谢谢

isdkz 发表于 2023-4-25 12:10:48

这个问题是由于在使用字典cmp_dic时,键值未找到导致的。当字典cmp_dic中找不到对应的键时,就会报出KeyError。在这种情况下,可以使用字典的get()方法来避免这个错误。get()方法可以为不存在的键设置一个默认值。代码可以修改如下:

df_fnd['AA'] = df_fnd['AA'].apply(lambda x: cmp_dic.get(x, ))


这样,如果在字典cmp_dic中找不到对应的键,就会返回一个包含默认值的列表(在这里是),然后使用索引0取出默认值。

然后,关于第二个错误,我们可以为字典cmp_dic添加一个新的键值对,使其包含'未知'这个键:

cmp_dic['未知'] = (None, )# 你可以设置一个合适的值


在这里,我给'未知'这个键分配了一个值None,你可以根据实际情况分配一个合适的值。这样,在运行以下代码时就不会报错了:

df_fnd['AA'] = df_fnd['AA'].fillna('未知')


希望这个解决方案能帮到你!
页: [1]
查看完整版本: 字典运用出现键错误的问题,求大师帮忙,谢谢