我的数据如下:
source browser sex age country class
SEO Chrome M 39 Japan 0
Ads Chrome F 53 United States 0
SEO Opera M 53 United States 1
SEO Safari M 41 NULL 0
Ads Safari M 45 United States 0
Ads Chrome M 18 Canada 0
为了让它为机器学习做好准备,我编写了一个函数,用整数代替范畴:
^{pr2}$然后我使用下面的方法调用它,将所有字符串列转换为整数:
cols=['sex','browser','country','source']
for col in cols:
df_fraud[col] = convert_str_int(df_fraud[col])
我想存储与每个列相关联的字典并在以后调用它,我可以在def函数中简单地说“return Y,D”,但我不确定如何将其包含在下面的for函数中。在
坦率地说,我不确定在词典中存储这些参考文献的最佳方法是什么,并且愿意听取建议。在
我简化了下面的例子:
使用建议的代码时,这不起作用。有什么想法吗?在
def str2int(data):
y2= data
S = set(y2) #set
D = dict( zip(S, range(len(S))) ) # assign each string an integer, and put it in a dict
Y = [D[y2_] for y2_ in y2] # store class labels as ints
return Y, D
def make_str2int(data):
categories = set(data)
return dict(zip(categories, range(len(categories))))
raw_data = {
'names': ['A','B','B','D','D','E','B','B','E','F'],
'gender': ['M','F','F','F','F','M','M','M','M','M']}
str2int={}
cols = ['names', 'gender']
for col in cols:
str2int[col] = make_str2int(df_fraud[col])
我还没有测试过,我也不确定你打算如何使用这些词典,但这里是我的建议。在
您可以将字典存储在字典字典中:
(假设
df_fraud
代表您的表(您在问题中没有明确说明这一点。)然后,如果您希望类别存在于一列
^{pr2}$col
,可以调用:如果需要相应的数字:
如果要将编号与已知列
col
中的分类值cat_val
关联:编辑:应用于您的
raw_data
示例输出:
相关问题 更多 >
编程相关推荐