我试图通过分解数据帧中的类别列表来对它们进行编码。然后我将从这一系列列表中创建一个矩阵(将它们规范化为一个固定长度,创建一个多维数组,并对矩阵中的元素进行热编码)。在
但是,这些因子不能保持行之间的一致性。 这里可以看到:
>>> import pandas as pd
>>> df = pd.DataFrame({'A': [ ['Other', 'Male', 'Female', 'Male', 'Other'], ['Female', 'Other', 'Male'] ]})
>>> df['B'] = df.A.apply(lambda x: pd.factorize(x)[0])
>>> df
A B
0 [Other, Male, Female, Male, Other] [0, 1, 2, 1, 0]
1 [Female, Other, Male] [0, 1, 2]
有人知道如何为这个系列维护行间相同的编码吗?在
您可以使用sklearn中的^{} :
安装编码器:
转换列:
^{pr2}$您可以使用列
A
中的所有值轻松地自己完成。在首先,使用集合理解来创建列
A
中所有唯一项的集合。然后使用字典理解,其中键是这些唯一项,并且基于这些排序的唯一项枚举值。在然后使用列表理解法查找字典中的条目。在
相关问题 更多 >
编程相关推荐