繁体   English   中英

创建一个虚拟变量,将其他虚拟变量合并到python中

[英]creating a dummy variable combining other dummies in python

我想将三个虚拟变量组合为一个。 例如:

x1:1 0 0 0 1

x2:0 0 0 0 1

x3:1 1 0 0 0

我想创建:x4:1 1 0 0 1(如果三个虚拟变量中的任何一个具有1,则取1;如果所有虚拟变量都为零,则取0)。

注意:它们是数据框中的变量。 因此,新变量也将成为该数据框的一部分。

我是python的新手,感谢您的帮助。 最好

假设您将x定义为网格:

x = [
    [1, 0, 0, 0, 1],
    [0, 0, 0, 0, 1],
    [1, 1, 0, 0, 0]
]

对于每一行,我们可以使用any()来查看该行中是否有任何一项。 然后,我们可以使用int()将结果(布尔值)转换为整数:

result = [int(any(row)) for row in x]

我不太确定新变量是数据帧的一部分是什么意思。

我认为创建x4的最直接的方法是在列表理解中使用按位或运算符:

>>> x1=[1, 0, 0, 0, 1]
>>> x2=[0, 0, 0, 0, 1]
>>> x3=[1, 1, 0, 0, 0]
>>> x4=[x1[i]|x2[i]|x3[i] for i in range(len(x1))]
>>> x4
[1, 1, 0, 0, 1]

列表解析(请参阅https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions )在迭代x1-x3的第一个,第二个等值时构建一个新列表。 如果3个值中的任何一个为1,则按位OR运算符(|)(请参阅https://wiki.python.org/moin/BitwiseOperators )每次均求值为1,否则为0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM