加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – pandas数据帧中的编码/分解列表

发布时间:2020-12-20 12:02:06 所属栏目:Python 来源:网络整理
导读:我试图通过对它们进行分解来编码数据框中的类别列表.然后,我将从这一系列列表中创建一个矩阵(将它们标准化为设定长度,创建一个多维数组,并对矩阵中的元素进行一次热编码). 但是,这些因素不能保持行之间的一致性. 这可以在这里看到: import pandas as pd df
我试图通过对它们进行分解来编码数据框中的类别列表.然后,我将从这一系列列表中创建一个矩阵(将它们标准化为设定长度,创建一个多维数组,并对矩阵中的元素进行一次热编码).

但是,这些因素不能保持行之间的一致性.
这可以在这里看到:

>>> import pandas as pd
>>> df = pd.DataFrame({'A': [ ['Other','Male','Female','Other'],['Female','Other','Male'] ]})
>>> df['B'] = df.A.apply(lambda x: pd.factorize(x)[0])
>>> df
                                    A                B
0  [Other,Male,Female,Other]  [0,1,2,0]
1               [Female,Other,Male]        [0,2]

有谁知道如何维护这个系列的编码在行之间是相同的?

解决方法

您可以使用sklearn中的 LabelEncoder

适合编码器:

from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit([s for l in df.A for s in l])

转换列:

df.A.apply(le.transform)
#0    [2,2]
#1          [0,1]
#Name: A,dtype: object

le.classes_
#array(['Female',#      dtype='<U6')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读