Python 基于熊猫中两列的扣合?

Python 基于熊猫中两列的扣合?,python,python-3.x,pandas,Python,Python 3.x,Pandas,假设我们有一个dataframe,至少有两列,并且有两列我们想用来创建一个新列。在本例中,假设两个列都是某个特征的布尔值,我们需要一个包含4个组合的列。标签可以是0-3,但不必是F,F可能与T,T具有相同的桶。通常如何在熊猫中对其进行编码?我很想知道如何将其推广到非布尔值,如float或int。另外,有特定的标签也会很有帮助,例如,代替0-3可能是“prospecting”、“sale”、“pending”、“closed” 我想要的数据帧示例可能是 特征1 特征2 特征_1_2_桶 假的 真的

假设我们有一个dataframe,至少有两列,并且有两列我们想用来创建一个新列。在本例中,假设两个列都是某个特征的布尔值,我们需要一个包含4个组合的列。标签可以是0-3,但不必是F,F可能与T,T具有相同的桶。通常如何在熊猫中对其进行编码?我很想知道如何将其推广到非布尔值,如float或int。另外,有特定的标签也会很有帮助,例如,代替0-3可能是“prospecting”、“sale”、“pending”、“closed”

我想要的数据帧示例可能是

特征1 特征2 特征_1_2_桶 假的 真的 3. 真的 假的 1. 假的 假的 2. 真的 真的 0 这个受启发的例子应该有助于:

>>> a = pd.DataFrame({"names":['a','b','c'], "v1": np.random.choice([True,False], size=3),
 "v2":np.random.choice([True,False], size=3)})
>>> a
  names     v1     v2
0     a  False   True
1     b   True  False
2     c  False   True

>>> b = {(True, True): 0, (True, False):1, (False, True): 2, (False, False): 3}
>>> a['v3'] = a.set_index(['v1', 'v2']).index.map(b.get)
>>> a
  names     v1     v2  v3
0     a  False   True   2
1     b   True  False   1
2     c  False   True   2
要在
v3
中获取其他值,只需更改字典
b
中的值即可