基于Pandas中两列的扣合?

2024-06-07 00:36:00 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

^{tb1}$

Tags: 数据示例dataframe编码特征标签salefloat
1条回答
网友
1楼 · 发布于 2024-06-07 00:36:00

这个受this启发的例子应该有助于:

>>> 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中的值

相关问题 更多 >