我有一本字典和一张清单。对于列表中的每个键,我想绘制与该键关联的值。
我在 pandas 中有以下代码:
import numpy as np; np.random.seed(22)
import seaborn as sns; sns.set(color_codes=True)
window = int(math.ceil(5000.0 / 100))
xticks = range(-2500,2500,window)
sns.tsplot([mydictionary[k] for k in mylist],time=xticks,color="g")
plt.legend(['blue'])
但是,我得到 KeyError: xxxx
我可以手动删除列表中所有有问题的键,但这需要很长时间。有没有办法可以跳过这个关键错误?
如果您正在寻找一种方法来克服按键错误,请使用
try
和 except
。然而,提前清理数据会更优雅。
示例:
mydictionary = {
'a': 1,
'b': 2,
'c': 3,
}
mylist = ['a', 'b', 'c', 'd']
result = []
for k in mylist:
try:
result.append(mydictionary[k])
except KeyError:
pass
print(result)
>>> [1, 2, 3]
您需要先构建列表,然后再在 seaborn 图中使用它。然后,通过调用传递列表:
sns.tsplot(result ,time=xticks,color="g")
解决了类似的问题
[mydictionary[k] for k in mylist if k in mydictionary]