当前位置: 首页 > 面试题库 >

使用pandas中具有多个值的列创建虚拟变量

袁建木
2023-03-14
问题内容

我正在寻找一种处理以下问题的Python方法。

pandas.get_dummies()方法非常适合从数据框的分类列创建虚拟对象。例如,如果列中的值为['A', 'B'],则get_dummies()创建2个哑变量并相应地分配0或1。

现在,我需要处理这种情况。称为“标签”的单个列具有类似的值['A', 'B', 'C', 'D', 'A*C', 'C*D']get_dummies()创建6个假人,但我只想要4个假人,所以一行可以有多个1。

有没有办法以pythonic的方式处理这个问题?我只能想到一些逐步的算法来获取它,但是其中不包括get_dummies()。谢谢

编辑,希望更清楚!


问题答案:

我知道自问这个问题以来已经有一段时间了,但是(至少 现在 有)文档支持的单行代码:

In [4]: df
Out[4]:
      label
0  (a, c, e)
1     (a, d)
2       (b,)
3     (d, e)

In [5]: df['label'].str.join(sep='*').str.get_dummies(sep='*')
Out[5]:
   a  b  c  d  e
0  1  0  1  0  1
1  1  0  0  1  0
2  0  1  0  0  0
3  0  0  0  1  1


 类似资料:
  • 问题内容: 我正在尝试使用python中的pandas从类别变量中创建一系列虚拟变量。我遇到过该函数,但是每当我尝试调用该函数时,都会收到一个错误,提示您未定义名称。 创建虚拟变量的任何想法或其他方式将不胜感激。 编辑 :由于其他人似乎遇到了这种情况,因此熊猫中的函数现在可以正常工作了。这意味着以下应该起作用: 有关更多信息,请参见http://blog.yhathq.com/posts/logi

  • 我试图在python中使用pandas从一个分类变量创建一系列伪变量。我遇到了函数,但每当我尝试调用它时,都会收到一个错误,即名称未定义。 任何创建虚拟变量的想法或其他方法都将受到欢迎。 编辑:由于其他人似乎遇到了这种情况,熊猫中的功能现在运行得非常好。这意味着以下各项应起作用: 看见http://blog.yhathq.com/posts/logistic-regression-and-pyth

  • 我有一个数据框架,我想从其中一列的列表中创建5列 示例: 请注意,这里很少有列表少于5列,对于这些列,请在该位置插入NAN。

  • 问题内容: 如果我选择SELECT AS b且b不是表中的列,查询会创建“虚拟”列吗? 实际上,我需要将一些虚拟列合并到查询中,并将一些信息处理到查询中,以便以后可以在每个项目中使用它。 问题答案: 就像是: 这使您可以进行操作并将其显示为列。 编辑: 您还可以使用联接并将操作显示为列:

  • 问题内容: 我尝试使用插入一些虚拟数据到我的表中,但是它的运行速度确实非常慢。 我在想,也许我编写的代码不正确,请您看看并确认一下吗? 问题答案: 如果只对所有4999行进行一次插入,则与在循环中执行4999个单独的插入语句相比,您将获得更好的性能。因此,如果您的表#T包含4999行,则只需调用以下命令: 如果您首先需要创建一个包含4999行的表,那么以下SQL将为您工作:

  • 谈到R编码,我目前有点墨守成规。我一直在尝试使用mutate、seq和rep函数来生成一个新列,该列迭代多个列值和不同的条件,但结果并不正确。下面是我的一些数据片段: 我希望按类型和特征 ID 对 lipidName 进行分组,然后查看类型特征 ID2,而不是不正确的数据表。如果它们具有相同的类型和特征 ID,则将它们计为脂质名称的相同脂质。如果它们具有相同的类型和特征ID2,则将它们计为脂质名称