假设我们有一个至少有两列的数据框,其中有两列我们想要用来创建一个新列。在这种情况下,假设两个列都是一个特征的布尔值,我们想要一个列存储4个组合。标签可以是0 - 3但不一定是F,F可以和T T在同一个桶里。如何在Pandas中对其进行编码?我很有兴趣知道如何将其推广到非布尔值,如浮点数或整数。此外,有特定的标签也会有所帮助,例如,代替0-3可能"prospecting", " sales ", "pending", "closed"
我想要的一个示例数据框架可以是…
<表类>
feature_1
feature_2
feature_1_2_bucket
tbody><<tr>假 对 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
中的值。