使用pandas或python创建一个特征向量

时间:2015-03-16 21:29:55

标签: python numpy pandas

我有一个二元分类器,它采用200元素输入特征向量,如下所示

   [ id, v1,   v2, ...,v190, v200, class]
   [  7,   0,   0, ...,   0,    0,    0 ],
   [  8,   0,   1, ...,   0,    0,    1 ],
   [  9,   0,   0, ...,   0,    0,    1 ],

对于每个元素X,它可以在v1-v200中具有任何属性集

   sql = 'SELECT x_id, x_attr FROM elements WHERE x_hash = %s'
   cur.execute(sql, (x_hash,))
   x1 = cur.fetchone()
   x1 # x1 returns the id and a list of attributes
    (123, [v2,v56,v200])

鉴于输出我想创建一个特征向量,如上面的那个,如果列表中的属性与set v1-v200中的any属性匹配,那么它将被设置为1.

   [  id,   v1,  v2,...,v56,...,v190, v200,    class ],
   [  123,   0,   1,...,1,...,   0,    1,    ?     ],

我怎么能在熊猫或蟒蛇中做到这一点?

1 个答案:

答案 0 :(得分:2)

首先初始化一个pandas数据帧然后构建你的示例:

df = pd.DataFrame(None, columns=['v'+str(i) for i in range(1,201)])
sql = 'SELECT x_id, x_attr FROM elements WHERE x_hash = %s'
cur.execute(sql, (x_hash,))
x1_id, features = cur.fetchone()
df.loc[x1_id] = 0  # Initializes all values for the ID to zero.
df.loc[x1_id, features] = 1  # Sets relevant features to a value of one.

我没有上课,因为我不确定你是如何使用它的。