如何将数字重新编码为分类数据

时间:2019-04-02 08:18:32

标签: python col

我是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]]

1 个答案:

答案 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)