相当于多列的熊猫因子分解?

时间:2016-05-11 23:46:38

标签: python pandas

我有三个数据帧的二进制类型列,它们的值一起构成了有意义的数据分组。为了引用该组,我目前正在将新列编写为硬编码二进制编码,如下所示:

next_function(the_return_value)

Pandas data['type'] = data['a'] + 2 * data['b'] + 4 * data['c'] 将为序列的每个不同值分配一个整数,但它似乎不适用于多列的组合。对于像这样的情况,是否有更普通的熊猫功能?如果这样的函数推广到任意数量的类别的K个不同的分类变量,而不是局限于二元变量,那将是很好的。

如果这样的事情不存在,是否会对拉取请求感兴趣?

2 个答案:

答案 0 :(得分:1)

您可以尝试以下两种方法:

df = pd.DataFrame({'a': [1, 1, 0], 
                   'b': [0, 1, 0], 
                   'c': [1, 1, 1]})

>>> df
   a  b  c
0  1  0  1
1  1  1  1
2  0  0  1

>>> ["".join(row) for row in df[['a', 'b', 'c']].values.astype(str)]
Out[22]: ['101', '111', '001']

>>> [bytearray("".join(row)) for row in df[['a', 'b', 'c']].values.astype(str)]
Out[23]: [bytearray(b'101'), bytearray(b'111'), bytearray(b'001')]

答案 1 :(得分:1)

您可能需要查看Patsy,其中包含分类变量编码和其他与模型相关的问题:PHP type hinting

$("Element A").after($("Element B")); 提供了不少see docs,包括:

  • 治疗(默认)
  • 向后差编码
  • 正交多项式对比度编码
  • 偏差编码(也称为归零编码)和
  • Helmert对比