我想用秩热编码而不是一个热编码来处理熊猫数据帧。在
例如这个pandas数据帧:
df = pd.DataFrame([[1,2],[3,2],[2,2]], columns=['colA', 'colB'])
print(df)
>> colA colB
0 1 2
1 3 0
2 2 3
最终应该是什么样子:
^{pr2}$这适用于小数据帧:
def rankHotEncode(row):
newFeatures = {}
for i, v in row.iteritems():
for k in range(MULTIPLYFEATURES):
newFeatures[i + repr(k)] = 1 if v >= k else 0
return pd.Series(newFeatures)
df.apply(rankHotEncode, axis=1)
该解决方案不应是硬编码的,对于订单量约为100.000行的数据不应高效。 如何改进所提供的解决方案以使其更有效,或者最好的方法是什么?在
您可以使用scikit learn^{} 和{a2}。虽然它涉及到一些副本,但它是相当有效的,因为它不处理矩阵逐行。下面是一个使用它的示例代码。在
它为您的示例输出
^{pr2}$相关问题 更多 >
编程相关推荐