我是Python的新手,我出于数据科学目的对其进行研究。现在,我正在尝试将一些数字数据(1、2、3等)重新编码为类别。最后需要一点循环,但是我做不到。它导致键错误3。
数据集有21列。
有人可以帮忙吗? 谢谢!
for col_dic in code_list:
col = col_dic[0]
dic = col_dic[1]
values[col] = [dic[x] for x in values[col]]
答案 0 :(得分:0)
很难理解您想要在结果中看到什么,但是导致此错误的原因很明显:
您正在遍历列表列表。每个col_dic
包含一个col = col_dic[0]
(类似于'property_type'
的字符串)和dic = col_dic[1]
(字典)。在最后一行中,您正在将信息写入values
字典(我想您是之前创建的)。出现此错误是因为dic
不包含values[col]
中的特定键。例如:
values[col]
等于{1: [], 2: [], 3: []}
,而dic
等于{1: 'One', 2: 'Two'}
。遍历values[col]
时,您试图在3
中找到密钥dic
。但是它不包含3
键,因此会出现错误。您应该检查dic
是否包含如下所示的密钥:
values_list = []
for v in values[col]:
if v in dic:
values_list.append(dic[v])
values[col] = values_list
还要注意,您的键是代表整数的字符串。当您尝试在字典中找到包含'3'
之类的键(整数)的字典中的键3
(字符串)时,可能会出现错误。因此,我建议您将密钥转换为字符串:str(key)
。