我正在尝试使用pandas将分类值转换为二进制值。其思想是将每个唯一的分类值视为一个特征(即列),并根据是否将特定对象(即行)分配给该类别而输入1或0。以下是代码:
data = pd.read_csv('somedata.csv')
converted_val = data.T.to_dict().values()
vectorizer = DV( sparse = False )
vec_x = vectorizer.fit_transform( converted_val )
numpy.savetxt('out.csv',vec_x,fmt='%10.0f',delimiter=',')
我的问题是,如何用列名保存转换后的数据?。在上面的代码中,我可以使用numpy.savetxt
函数保存数据,但这只是保存数组,列名将丢失。或者,是否有更有效的方法来执行上述操作?。
似乎您正在使用scikit learn的
DictVectorizer
将分类值转换为二进制值。在这种情况下,要将结果与新列名一起存储,可以使用来自vec_x
的值和来自DV.get_feature_names()
的列构造一个新的数据帧。然后,将数据帧存储到磁盘(例如使用to_csv()
),而不是numpy数组。或者,也可以使用} 函数进行编码:
pandas
直接使用^{输出:
你是说“一个热门”编码?
假设您有以下数据集:
现在,你有多种选择。。。
A) 乏味的方法
屈服:
B) Scikit学习
DictVectorizer
屈服:
C) 熊猫
相关问题 更多 >
编程相关推荐