相关疑难解决方法(0)

如何从包含列表的pandas列进行单热编码?

我想将一个由一系列元素组成的pandas列分解为多个列,因为它们具有唯一的元素,即one-hot-encode它们(其值1表示存在于行0中的给定元素,在缺少的情况下).

例如,采用数据帧df

Col1   Col2         Col3
 C      33     [Apple, Orange, Banana]
 A      2.5    [Apple, Grape]
 B      42     [Banana] 
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

DF

Col1   Col2   Apple   Orange   Banana   Grape
 C      33     1        1        1       0
 A      2.5    1        0        0       1
 B      42     0        0        1       0
Run Code Online (Sandbox Code Playgroud)

我如何使用pandas/sklearn来实现这一目标?

python numpy pandas scikit-learn sklearn-pandas

47
推荐指数
6
解决办法
1万
查看次数

如何一个热编码变体长度功能?

给出变体长度特征列表:

features = [
    ['f1', 'f2', 'f3'],
    ['f2', 'f4', 'f5', 'f6'],
    ['f1', 'f2']
]
Run Code Online (Sandbox Code Playgroud)

其中,每个样品具有特征的变体数量和特征dtypestr和已经一热.

为了使用sklearn的特征选择实用程序,我必须将其转换features为2D数组,如下所示:

    f1  f2  f3  f4  f5  f6
s1   1   1   1   0   0   0
s2   0   1   0   1   1   1
s3   1   1   0   0   0   0
Run Code Online (Sandbox Code Playgroud)

我怎么能通过sklearn或numpy实现它?

python numpy pandas scikit-learn

8
推荐指数
1
解决办法
1311
查看次数

熊猫:将多个变量转换为一组虚拟变量

我有一个类别(A,B,C,D)的列我想变成虚拟变量.问题是,这个列每行可以包含多个类别,如下所示:

DF = pd.DataFrame({'Col':['A', 'A, B', 'A, C', 'B, C, D', 'D']})

    Col
0   A
1   A, B
2   A, C
3   B, C, D
4   D
Run Code Online (Sandbox Code Playgroud)

我现在的想法是首先使用','作为分隔符将变量拆分为多个字段,然后对结果进行伪编码.像这样的东西:

DF2 = DF['Col'].str.split(', ', expand = True)

    0   1     2
0   A   None  None
1   A   B     None
2   A   C     None
3   B   C     D
4   D   None  None

pd.get_dummies(DF2)

    0_A 0_B 0_D 1_B 1_C 2_D
0   1   0   0   0   0   0
1   1   0   0   1   0   0
2 …
Run Code Online (Sandbox Code Playgroud)

python pandas

1
推荐指数
1
解决办法
272
查看次数

标签 统计

pandas ×3

python ×3

numpy ×2

scikit-learn ×2

sklearn-pandas ×1